python - que - Cómo agregar una nueva biblioteca como spark-csv en la versión precompilada de Apache Spark
apache spark version (6)
Debajo del comando me ayudó -: Con la versión 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
Tiene dependencias inferiores:
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)
Construí el Spark-csv y pude usarlo desde el shell de pyspark usando el siguiente comando
bin/spark-shell --packages com.databricks:spark-csv_2.10:1.0.3
error al obtener
>>> 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
¿Dónde debería colocar el archivo jar en mi configuración preinstalada de chispa para que también pueda acceder a spark-csv
directamente desde el editor de python?
En el momento en que usé spark-csv, también tuve que descargar commons-csv
jar (no estoy seguro de que todavía sea relevante). Ambos frascos estaban en la carpeta de distribución de chispas.
Descargué los frascos de la siguiente manera:
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
luego comenzó la chispa de pitón shell con los argumentos:
./bin/pyspark --jars "spark-csv_2.10-1.0.0.jar,commons-csv-1.1.jar"
y lea un marco de datos de chispa de un archivo csv:
from pyspark.sql import SQLContext<br/> sqlContext = SQLContext(sc)<br/> df = sqlContext.load(source="com.databricks.spark.csv", path = "/path/to/you/file.csv")<br/> df.show()
En lugar de colocar los frascos en una carpeta específica, una solución simple sería iniciar el shell pyspark con los siguientes argumentos:
bin/pyspark --packages com.databricks:spark-csv_2.10:1.0.3
Esto cargará automáticamente los frascos spark-csv requeridos.
Luego, haga lo siguiente para leer el archivo 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()
Otra opción es agregar lo siguiente a tu spark-defaults.conf:
spark.jars.packages com.databricks:spark-csv_2.11:1.2.0
Suponiendo que la sesión / contexto aún no se ha creado:
import os
os.environ[''PYSPARK_SUBMIT_ARGS''] = ''--packages com.databricks:spark-csv_2.10:1.3.0 pyspark-shell''
primero descubra el camino de la chispa. por ejemplo para pyspark
which pyspark
Te devolverá el camino, por ejemplo, como this- / home / ubuntu / bin / pyspark
luego ejecuta este comando cambiando la ruta según tu ruta de chispa general-: ruta --paquetes com.databricks: spark-csv_2.10: 1.0.3
/home/ubuntu/bin/pyspark --packages com.databricks:spark-csv_2.10:1.0.3