Подтвердить что ты не робот

Как добавить новую библиотеку, такую ​​как spark-csv в готовой версии Apache Spark

Я построил Spark-csv и смог использовать то же самое из оболочки pyspark, используя следующую команду

bin/spark-shell --packages com.databricks:spark-csv_2.10:1.0.3

ошибка получения

>>> 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

Где я должен поместить файл jar в свою предварительно подготовленную установку, чтобы я мог напрямую обращаться к spark-csv из редактора python.

4b9b3361

Ответ 1

В то время, когда я использовал spark-csv, мне также пришлось загрузить commons-csv jar (не уверен, что это все еще актуально). Оба баночки, в папке искрового распределения.

  • Я загрузил банки следующим образом:

    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
    
  • затем запустил искровую оболочку питона с аргументами:

    ./bin/pyspark --jars "spark-csv_2.10-1.0.0.jar,commons-csv-1.1.jar"
    
  • и прочитайте световой блок данных из файла 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()
    

Ответ 2

Другой вариант - добавить следующее к вашему spark-defaults.conf:

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

Ответ 3

Вместо размещения банок в любой конкретной папке простым решением было бы запустить оболочку pyspark со следующими аргументами:

bin/pyspark --packages com.databricks:spark-csv_2.10:1.0.3

Это автоматически загрузит требуемые банки с искровым разрядом.

Затем выполните следующие действия, чтобы прочитать файл 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()

Ответ 4

Предполагая, что сеанс/контекст еще не создан:

import os

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

Ответ 5

Ниже команда помогла мне:: Scala 2.10 version

/opt/mapr/spark/spark-1.5.2/bin/spark-shell --master local[*] --packages com.databricks:spark-csv_2.10:1.4.0

Ниже зависимостей -:

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)