Как я могу импортировать файл .csv в фреймы данных pyspark? Я даже пытался прочитать CSV-файл в Pandas, а затем преобразовать его в искровой фрейм данных, используя createDataFrame, но он все еще показывает некоторую ошибку. Может ли кто-нибудь провести меня через это? Кроме того, скажите, пожалуйста, как я могу импортировать файл xlsx? Я пытаюсь импортировать CSV-контент в кадры данных Pandas, а затем преобразовать его в искровые кадры данных, но он показывает ошибку:
"Py4JJavaError" An error occurred while calling o28.applySchemaToPythonRDD. : java.lang.RuntimeException: java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient
Мой код:
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)
Ответы:
"Как я могу импортировать файл .csv в фреймы данных pyspark?" - Есть много способов сделать это; проще всего было бы запустить pyspark с помощью модуля Databrick's spark-csv. Вы можете сделать это, запустив pyspark с
тогда вы можете выполнить следующие шаги:
Другой метод - читать текстовый файл как rdd, используя
Затем преобразуйте данные так, чтобы каждый элемент имел правильный формат для схемы (т. Е. Ints, Strings, Floats и т. Д.). Вы захотите затем использовать
Ссылка: http://spark.apache.org/docs/1.6.1/api/python/pyspark.sql.html#pyspark.sql.Row
"Кроме того, скажите, пожалуйста, как я могу импортировать файл xlsx?" - файлы Excel не используются в «Больших данных»; Spark предназначен для использования с большими файлами или базами данных. Если у вас есть файл Excel размером 50 ГБ, значит, вы делаете что-то не так. Excel даже не сможет открыть файл такого размера; Исходя из моего опыта, все, что выше 20 МБ, и Excel умирает.
источник
Следующее работает хорошо для меня:
источник
У меня в локальном каталоге есть файл 'temp.csv'. Оттуда, используя локальный экземпляр, я делаю следующее:
Таким образом, d0 - это необработанный текстовый файл, который мы отправляем в RDD. Чтобы вы могли создать фрейм данных, вы хотите разбить CSV на части и сделать каждую запись типом строки, как я делаю при создании d1. Последний шаг - сделать кадр данных из RDD.
источник
Вы можете использовать пакет spark-csv от DataBricks, который автоматически делает для вас многое, например, заботится о заголовке, использует escape-символы, автоматически выводит схему и так далее. Начиная с Spark 2.0 существует встроенная функция для работы с CSV.
источник