Comment importer un fichier .csv dans des cadres de données pyspark? J'ai même essayé de lire le fichier csv dans Pandas, puis de le convertir en un cadre de données spark à l'aide de createDataFrame, mais il affiche toujours une erreur. Quelqu'un peut-il me guider à travers cela? Aussi, dites-moi comment importer un fichier xlsx? J'essaie d'importer du contenu csv dans des cadres de données pandas, puis de le convertir en trames de données spark, mais cela montre l'erreur:
"Py4JJavaError" An error occurred while calling o28.applySchemaToPythonRDD. : java.lang.RuntimeException: java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient
Mon code est:
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)
Réponses:
"Comment puis-je importer un fichier .csv dans des trames de données pyspark?" - il existe de nombreuses façons de procéder; le plus simple serait de démarrer pyspark avec le module spark-csv de Databrick. Vous pouvez le faire en démarrant pyspark avec
alors vous pouvez suivre les étapes suivantes:
L'autre méthode serait de lire le fichier texte comme un rdd en utilisant
Transformez ensuite vos données afin que chaque élément soit au format correct pour le schéma (c'est-à-dire Ints, Strings, Floats, etc.). Vous voudrez ensuite utiliser
Référence: http://spark.apache.org/docs/1.6.1/api/python/pyspark.sql.html#pyspark.sql.Row
"Aussi, dites-moi comment importer un fichier xlsx?" - Les fichiers Excel ne sont pas utilisés dans les "Big Data"; Spark est destiné à être utilisé avec des fichiers ou des bases de données volumineux. Si vous avez un fichier Excel de 50 Go, vous vous trompez. Excel ne pourrait même pas ouvrir un fichier de cette taille; d'après mon expérience, tout ce qui dépasse 20 Mo et Excel meurt.
la source
Les suivants ont bien fonctionné pour moi:
la source
J'ai dans mon répertoire local un fichier 'temp.csv'. De là, en utilisant une instance locale, je fais ce qui suit:
Donc d0 est le fichier texte brut que nous envoyons à un RDD spark. Pour que vous puissiez créer un bloc de données, vous voulez séparer le csv et faire de chaque entrée un type de ligne, comme je le fais lors de la création de d1. La dernière étape consiste à créer la trame de données à partir du RDD.
la source
Vous pouvez utiliser le package spark-csv de DataBricks qui fait beaucoup de choses pour vous automatiquement, comme prendre soin de l'en-tête, utiliser des caractères d'échappement, inférer automatiquement un schéma, etc. À partir de Spark 2.0, il existe une fonction intégrée pour traiter les CSV.
la source