J'ai construit le Spark-csv et capable d'utiliser le même depuis pyspark Shell en utilisant la commande suivante
bin/spark-Shell --packages com.databricks:spark-csv_2.10:1.0.3
erreur d'obtenir
>>> df_cat.save("k.csv","com.databricks.spark.csv")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/Users/abhishekchoudhary/bigdata/cdh5.2.0/spark-1.3.1/python/pyspark/sql/dataframe.py", line 209, in save
self._jdf.save(source, jmode, joptions)
File "/Users/abhishekchoudhary/bigdata/cdh5.2.0/spark-1.3.1/python/lib/py4j-0.8.2.1-src.Zip/py4j/Java_gateway.py", line 538, in __call__
File "/Users/abhishekchoudhary/bigdata/cdh5.2.0/spark-1.3.1/python/lib/py4j-0.8.2.1-src.Zip/py4j/protocol.py", line 300, in get_return_value
py4j.protocol.Py4JJavaError
Où devrais-je placer le fichier jar dans ma configuration prédéfinie spark afin de pouvoir également accéder à spark-csv
à partir de l'éditeur python?.
À l'époque où j'utilisais spark-csv, je devais également télécharger le fichier commons-csv
jar (je ne suis pas sûr qu'il soit toujours pertinent). Les deux pots se trouvaient dans le dossier de distribution d’étincelles.
J'ai téléchargé les pots comme suit:
wget http://search.maven.org/remotecontent?filepath=org/Apache/commons/commons-csv/1.1/commons-csv-1.1.jar -O commons-csv-1.1.jar<br/>
wget http://search.maven.org/remotecontent?filepath=com/databricks/spark-csv_2.10/1.0.0/spark-csv_2.10-1.0.0.jar -O spark-csv_2.10-1.0.0.jar
puis a commencé l'étincelle Shell python avec les arguments:
./bin/pyspark --jars "spark-csv_2.10-1.0.0.jar,commons-csv-1.1.jar"
et lisez un fichier de données spark à partir d'un fichier csv:
from pyspark.sql import SQLContext
sqlContext = SQLContext(sc)
df = sqlContext.load(source="com.databricks.spark.csv", path = "/path/to/you/file.csv")
df.show()
Une autre option consiste à ajouter les éléments suivants à votre fichier spark-defaults.conf:
spark.jars.packages com.databricks:spark-csv_2.11:1.2.0
Au lieu de placer les fichiers jars dans un dossier spécifique, une solution simple consiste à démarrer pyspark Shell avec les arguments suivants:
bin/pyspark --packages com.databricks:spark-csv_2.10:1.0.3
Cela chargera automatiquement les bocaux spark-csv requis.
Procédez ensuite comme suit pour lire le fichier csv:
from pyspark.sql import SQLContext
sqlContext = SQLContext(sc)
df = sqlContext.read.format('com.databricks.spark.csv').options(header='true').load('file.csv')
df.show()
En supposant que la session/le contexte n'a pas encore été créé:
import os
os.environ['PYSPARK_SUBMIT_ARGS'] = '--packages com.databricks:spark-csv_2.10:1.3.0 pyspark-Shell'
Commande ci-dessous m'a aidé -: Avec la version Scala 2.10
/opt/mapr/spark/spark-1.5.2/bin/spark-Shell --master local[*] --packages com.databricks:spark-csv_2.10:1.4.0
A moins de dépendances -:
com.databricks#spark-csv_2.10;1.4.0!spark-csv_2.10.jar (2043ms)
org.Apache.commons#commons-csv;1.1!commons-csv.jar (419ms)
com.univocity#univocity-parsers;1.5.1!univocity-parsers.jar (1481ms)
découvrez d’abord le chemin de l’étincelle. par exemple pour pyspark
which pyspark
il vous retournera le chemin par exemple comme ceci- /home/ubuntu/bin/pyspark
puis exécutez cette commande en modifiant le chemin d'accès conformément à votre chemin d'accès spark general-: path --packages com.databricks: spark-csv_2.10: 1.0.3
/home/ubuntu/bin/pyspark --packages com.databricks:spark-csv_2.10:1.0.3