Cómo agregar cualquier biblioteca nueva como spark-csv en la versión precomstackda de Apache Spark

He construido el Spark-csv y puedo usar el mismo 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 "", line 1, in  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 precomstackda de spark para que yo también pueda acceder a spark-csv desde Python Editor directamente?

Related of "Cómo agregar cualquier biblioteca nueva como spark-csv en la versión precomstackda de Apache Spark"

Cuando utilicé spark-csv, también tuve que descargar el commons-csv jar (no estoy seguro de que sea relevante). Ambos flasks están en la carpeta de distribución de chispas.

  1. He descargado los tarros 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
    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
  2. Entonces comenzó la shell de chispa de Python con los argumentos:

     ./bin/pyspark --jars "spark-csv_2.10-1.0.0.jar,commons-csv-1.1.jar" 
  3. y lea un dataframe de chispa desde un archivo 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() 

Otra opción es agregar lo siguiente a su spark-defaults.conf:

 spark.jars.packages com.databricks:spark-csv_2.11:1.2.0 

En lugar de colocar los archivos jar 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 flasks spark-csv requeridos.

Luego haz 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() 

Asumiendo que la sesión / contexto aún no ha sido creado:

 import os os.environ['PYSPARK_SUBMIT_ARGS'] = '--packages com.databricks:spark-csv_2.10:1.3.0 pyspark-shell' 

El siguiente 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 por debajo de:

 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) 

Primero descubre el camino de la chispa. por ejemplo para pyspark

  which pyspark 

le devolverá la ruta, por ejemplo, como esta- / home / ubuntu / bin / pyspark

luego ejecute este comando cambiando la ruta según la ruta de su 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