Como posso importar um arquivo .csv para os quadros de dados pyspark? Eu até tentei ler o arquivo csv no Pandas e convertê-lo em um dataframe spark usando createDataFrame, mas ele ainda mostra algum erro. Alguém pode me guiar por isso? Além disso, diga-me como posso importar um arquivo xlsx? Estou tentando importar conteúdo csv para quadros de dados do pandas e depois convertê-lo em quadros de dados spark, mas está mostrando o erro:
"Py4JJavaError" An error occurred while calling o28.applySchemaToPythonRDD. : java.lang.RuntimeException: java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient
Meu código é:
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)
Respostas:
"Como posso importar um arquivo .csv para os quadros de dados do pyspark?" -- Há muitas maneiras de fazer isso; o mais simples seria iniciar o pyspark com o módulo spark-csv da Databrick. Você pode fazer isso iniciando o pyspark com
então você pode seguir as seguintes etapas:
O outro método seria ler o arquivo de texto como um arquivo rdd usando
Em seguida, transforme seus dados para que cada item esteja no formato correto para o esquema (ou seja, Ints, Strings, Floats, etc.). Você vai querer usar
Referência: http://spark.apache.org/docs/1.6.1/api/python/pyspark.sql.html#pyspark.sql.Row
"Além disso, por favor me diga como posso importar o arquivo xlsx?" - arquivos do Excel não são usados no "Big Data"; O Spark deve ser usado com arquivos ou bancos de dados grandes. Se você tem um arquivo do Excel com 50 GB de tamanho, está fazendo algo errado. O Excel nem seria capaz de abrir um arquivo desse tamanho; da minha experiência, qualquer coisa acima de 20 MB e Excel morre.
fonte
A seguir funcionou bem para mim:
fonte
Eu tenho no meu diretório local um arquivo 'temp.csv'. A partir daí, usando uma instância local, faço o seguinte:
Então d0 é o arquivo de texto bruto que enviamos para um spark RDD. Para criar um quadro de dados, você deseja dividir o csv e transformar cada entrada em um tipo de linha, como faço ao criar d1. O último passo é criar o quadro de dados do RDD.
fonte
Você pode usar o pacote spark-csv do DataBricks que faz muitas coisas automaticamente, como cuidar do cabeçalho, usar caracteres de escape, inferir esquemas automáticos, etc. A partir do Spark 2.0, há uma função integrada para lidar com CSVs.
fonte