2016-06-27 3 views
1

я успешно загружен искровой CSV библиотеки в режиме автономного питона черезДобавление искровой CSV пакета в PyCharm IDE

$ --packages com.databricks:spark-csv_2.10:1.4.0 

Running the above command

Во время работы над командой, он создает две папки (банки и кэш) в этом месте

C:\Users\Mahima\.ivy2 

Внутри есть две папки. Один из них содержит эти файлы jar-org.apache.commons_commons-csv-1.1.jar, com.univocity_univocity-parsers-1.5.1.jar, com.databricks_spark-csv_2.10-1.4.0.jar

I хотите загрузить эту библиотеку в PyCharm (Windows 10), которая уже настроена для запуска программ Spark. Поэтому я добавил папку .ivy2 в Project Interpreter Path. В основном ошибки я получаю:

An error occurred while calling o22.load. 
: java.lang.ClassNotFoundException: Failed to find data source: com.databricks.spark.csv. Please find packages at http://spark-packages.org 

Полный журнал ошибок выглядит следующим образом:

16/06/27 12:54:02 WARN NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable 
Traceback (most recent call last): 
File "C:/Users/Mahima/PycharmProjects/wordCount/wordCount.py", line 10, in <module> 
df = sqlContext.read.format('com.databricks.spark.csv').options(header='true').load('flight.csv') 
File "C:\spark-1.6.1-bin-hadoop2.4\python\pyspark\sql\readwriter.py", line 137, in load 
return self._df(self._jreader.load(path)) 
File "C:\spark-1.6.1-bin-hadoop2.4\python\lib\py4j-0.9-src.zip\py4j\java_gateway.py", line 813, in __call__ 
File "C:\spark-1.6.1-bin-hadoop2.4\python\pyspark\sql\utils.py", line 45, in deco 
return f(*a, **kw) 
File "C:\spark-1.6.1-bin-hadoop2.4\python\lib\py4j-0.9-src.zip\py4j\protocol.py", line 308, in get_return_value 
py4j.protocol.Py4JJavaError: An error occurred while calling o22.load. 
: java.lang.ClassNotFoundException: Failed to find data source: com.databricks.spark.csv. Please find packages at http://spark-packages.org 
at org.apache.spark.sql.execution.datasources.ResolvedDataSource$.lookupDataSource(ResolvedDataSource.scala:77) 
at org.apache.spark.sql.execution.datasources.ResolvedDataSource$.apply(ResolvedDataSource.scala:102) 
at org.apache.spark.sql.DataFrameReader.load(DataFrameReader.scala:119) 
at org.apache.spark.sql.DataFrameReader.load(DataFrameReader.scala:109) 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 
at java.lang.reflect.Method.invoke(Unknown Source) 
at py4j.reflection.MethodInvoker.invoke(MethodInvoker.java:231) 
at py4j.reflection.ReflectionEngine.invoke(ReflectionEngine.java:381) 
at py4j.Gateway.invoke(Gateway.java:259) 
at py4j.commands.AbstractCommand.invokeMethod(AbstractCommand.java:133) 
at py4j.commands.CallCommand.execute(CallCommand.java:79) 
at py4j.GatewayConnection.run(GatewayConnection.java:209) 
at java.lang.Thread.run(Unknown Source) 
Caused by: java.lang.ClassNotFoundException: com.databricks.spark.csv.DefaultSource 
at java.net.URLClassLoader$1.run(Unknown Source) 
at java.net.URLClassLoader$1.run(Unknown Source) 
at java.security.AccessController.doPrivileged(Native Method) 
at java.net.URLClassLoader.findClass(Unknown Source) 
at java.lang.ClassLoader.loadClass(Unknown Source) 
at java.lang.ClassLoader.loadClass(Unknown Source) 
at org.apache.spark.sql.execution.datasources.ResolvedDataSource$$anonfun$4$$anonfun$apply$1.apply(ResolvedDataSource.scala:62) 
at org.apache.spark.sql.execution.datasources.ResolvedDataSource$$anonfun$4$$anonfun$apply$1.apply(ResolvedDataSource.scala:62) 
at scala.util.Try$.apply(Try.scala:161) 
at org.apache.spark.sql.execution.datasources.ResolvedDataSource$$anonfun$4.apply(ResolvedDataSource.scala:62) 
at org.apache.spark.sql.execution.datasources.ResolvedDataSource$$anonfun$4.apply(ResolvedDataSource.scala:62) 
at scala.util.Try.orElse(Try.scala:82) 
at org.apache.spark.sql.execution.datasources.ResolvedDataSource$.lookupDataSource(ResolvedDataSource.scala:62) 
... 14 more 


Process finished with exit code 1 

Я уже добавил банки на пути переводчика проекта. Где я иду не так? Пожалуйста, предложите некоторое решение. Заранее спасибо

ответ

3

Решение состоит в том, чтобы добавить переменную среды с именем как "PYSPARK_SUBMIT_ARGS" и установить его значение на "--packages com.databricks: Spark-csv_2.10: 1.4.0 pyspark-оболочки". Он будет работать нормально.

0
  • sqlContext.read.format («com.databricks.spark.csv») на консоли не гарантирует, что пакет фактически установлен, пока вы не выполнить соответствующую команду на нем. На самом деле команда

    sqlContext.read.format('com.dummy.csv') 
    

не возвращает какой-либо ошибки либо

  • вы можете добавить пакет к вашему искрового контексте

    sc.addPyFile("com.databricks_spark-csv_2.10-1.4.0.jar") 
    
  • вы можете открыть файл CSV в одна линия без пакета

    sc.textFile("file.csv").map(lambda line: line.split(",")).toDF 
    
+0

Благодарим вас за ответ. Да на консоли запускается следующая команда: sqlContext.read.format ('com.databricks.spark.csv'). Я попытался добавить файлы jar с помощью sc.addPyFile, как вы указали, но я все еще сталкиваюсь с той же ошибкой (произошла ошибка при вызове o25.load. : java.lang.ClassNotFoundException: Не удалось найти источник данных: com.databricks .spark.csv.) – mahima

 Смежные вопросы

  • Нет связанных вопросов^_^