我用SparkCassandra连接器连接到Cassandra从Spark。
我能够通过livy连接成功使用下面的命令。
curl -X POST --data '{"file": "/my/path/test.py", "conf" : {"spark.jars.packages": "com.datastax.spark:spark-cassandra-connector_2.11:2.3.0", "spark.cassandra.connection.host":"myip"}}' -H "Content-Type: application/json" localhost:8998/batches
还可以通过pyspark shell使用下面的命令进行交互连接
sudo pyspark --packages com.datastax.spark:spark-cassandra-connector_2.10:2.0.10 --conf spark.cassandra.connection.host=myip
但无法通过spark submit连接。下面是我尝试过的一些命令。 spark-submit test.py --packages com.datastax.spark:spark-cassandra-connector_2.11:2.3.2 --conf spark.cassandra.connection.host=myip
这个不行。
我尝试将这些参数传递给我用于spark submit的python文件,但仍然不起作用。 conf = (SparkConf().setAppName("Spark-Cassandracube").set("spark.cassandra.connection.host","myip").set({"spark.jars.packages","com.datastax.spark:spark-cassandra-connector_2.11:2.3.0"))
sc = SparkContext(conf = conf) sqlContext = SQLContext(sc)
试图通过这些参数uising jupyter笔记本也是。
import os os.environ['PYSPARK_SUBMIT_ARGS'] = '--packages com.datastax.spark:spark-cassandra-connector_2.11:2.3.0 --conf spark.cassandra.connection.host="myip" pyspark-shell'
到目前为止,我看到的所有线程都在谈论使用spark shell的spark cassandra连接器,但对spark submit没有太多介绍。
使用的版本
利维:0.5.0Spark:2.4.0Cassandra:3.11.4
1条答案
按热度按时间kxkpmulp1#
未测试,但最可能的原因是您指定了所有选项:
在脚本名称之后:
test.py
-在这种情况下,spark-submit
将它们视为脚本本身的参数,而不是spark-submit
. 尝试在选项后移动脚本名称。。。p、 请参阅spark文档了解更多详细信息。。。