¿Cómo puedo importar un archivo .csv en marcos de datos pyspark? Incluso intenté leer el archivo csv en Pandas y luego convertirlo en un marco de datos de chispa usando createDataFrame, pero todavía muestra algún error. ¿Alguien puede guiarme a través de esto? Además, por favor dígame ¿cómo puedo importar un archivo xlsx? Estoy tratando de importar contenido csv en marcos de datos de pandas y luego convertirlo en marcos de datos de chispa, pero muestra el error:
"Py4JJavaError" An error occurred while calling o28.applySchemaToPythonRDD. : java.lang.RuntimeException: java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient
Mi código es:
from pyspark import SparkContext
from pyspark.sql import SQLContext
import pandas as pd
sqlc=SQLContext(sc)
df=pd.read_csv(r'D:\BestBuy\train.csv')
sdf=sqlc.createDataFrame(df)
Respuestas:
"¿Cómo puedo importar un archivo .csv en marcos de datos pyspark?" -- Hay muchas maneras de hacer esto; lo más sencillo sería iniciar pyspark con el módulo spark-csv de Databrick. Puede hacerlo iniciando pyspark con
entonces puedes seguir los siguientes pasos:
El otro método sería leer en el archivo de texto como un rdd usando
Luego, transforme sus datos para que cada elemento tenga el formato correcto para el esquema (es decir, Ints, Strings, Floats, etc.). Entonces querrás usar
Referencia: http://spark.apache.org/docs/1.6.1/api/python/pyspark.sql.html#pyspark.sql.Row
"Además, por favor dígame ¿cómo puedo importar el archivo xlsx?" - Los archivos de Excel no se usan en "Big Data"; Spark está destinado a ser utilizado con grandes archivos o bases de datos. Si tiene un archivo Excel que tiene un tamaño de 50 GB, está haciendo las cosas mal. Excel ni siquiera podría abrir un archivo de ese tamaño; desde mi experiencia, cualquier cosa por encima de 20 MB y Excel muere.
fuente
Lo siguiente funcionó bien para mí:
fuente
Tengo en mi directorio local un archivo 'temp.csv'. A partir de ahí, usando una instancia local, hago lo siguiente:
Entonces d0 es el archivo de texto sin formato que enviamos a una chispa RDD. Para que pueda crear un marco de datos, desea separar el csv y hacer que cada entrada sea un tipo de fila, como lo hago al crear d1. El último paso es hacer el marco de datos desde el RDD.
fuente
Puede usar el paquete spark-csv de DataBricks que hace muchas cosas por usted automáticamente, como cuidar el encabezado, usar caracteres de escape, esquema automático que infiere etc. A partir de Spark 2.0, hay una función incorporada para tratar con CSV.
fuente