我已经构建了Spark-csv并且能够使用以下命令从pyspark shell中使用相同的
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预构建设置中,以便我也可以直接从python编辑器访问spark-csv
。
答案 0 :(得分:26)
当我使用spark-csv时,我还必须下载commons-csv
jar(不确定它是否仍然相关)。两个罐子都在spark分配文件夹中。
我按照以下方式下载了罐子:
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
然后用参数:
启动了python spark shell./bin/pyspark --jars "spark-csv_2.10-1.0.0.jar,commons-csv-1.1.jar"
并从csv文件中读取spark数据帧:
from pyspark.sql import SQLContext
sqlContext = SQLContext(sc)
df = sqlContext.load(source="com.databricks.spark.csv", path = "/path/to/you/file.csv")
df.show()
答案 1 :(得分:20)
另一个选择是将以下内容添加到spark-defaults.conf中:
spark.jars.packages com.databricks:spark-csv_2.11:1.2.0
答案 2 :(得分:16)
不是将jar放在任何特定文件夹中,而是使用以下参数启动pyspark shell:
bin/pyspark --packages com.databricks:spark-csv_2.10:1.0.3
这将自动加载所需的spark-csv罐。
然后执行以下操作以阅读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()
答案 3 :(得分:3)
假设尚未创建会话/上下文:
import os
os.environ['PYSPARK_SUBMIT_ARGS'] = '--packages com.databricks:spark-csv_2.10:1.3.0 pyspark-shell'
答案 4 :(得分:0)
下面的命令帮助了我 - :使用Scala 2.10版本
/anaconda
具有以下依赖关系 - :
/opt/mapr/spark/spark-1.5.2/bin/spark-shell --master local[*] --packages com.databricks:spark-csv_2.10:1.4.0
答案 5 :(得分:0)
首先找出火花的路径。例如对于pyspark
which pyspark
它将返回路径,例如像这样 - /家庭/ ubuntu的/ bin中/ pyspark
然后根据您的火花路径更改路径来运行此命令 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