[英]How to Write Structured Streaming Data into Cassandra with PySpark?
[英]How to write structured stream data to Cassandra table using pyspark?
这是我运行 strm.py 文件的终端命令
$SPARK_HOME/bin/spark-submit --master local --driver-memory 4g --num-executors 2 --executor-memory 4g --packages org.apache.spark:spark-sql-kafka-0-10_2.11 :2.4.0 org.apache.spark:spark-cassandra-connector_2.11:2.4.0 strm.py
错误:
无法从带有 URI org.apache.spark 的 JAR org.apache.spark:spark-cassandra-connector_2.11:2.4.0 加载主类。 请通过--class 指定一个类。 在 org.apache.spark.deploy.SparkSubmitArguments.error(SparkSubmitArguments.scala:657) atorg.apache.spark.deploy.SparkSubmitArguments.loadEnvironmentArguments(SparkSubmitArguments.scala:224) 在 org.apache.spark.SubparkArguments.scala:224) .scala:116) 在 org.apache.spark.deploy.SparkSubmit$$anon$2$$anon$1.(SparkSubmit.scala:907) 在 org.apache.spark.deploy.SparkSubmit$$anon$2.parseArguments(SparkSubmit. scala:907) 在 org.apache.spark.deploy.SparkSubmit.doSubmit(SparkSubmit.scala:81) 在 org.apache.spark.deploy.SparkSubmit$$anon$2.doSubmit(SparkSubmit.scala:920) 在 org.apache .spark.deploy.SparkSubmit$.main(SparkSubmit.scala:929) 在 org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala)
因此,任何人都可以帮助我解决无法加载的问题。
你有两个问题:
您错误地提交了您的应用程序 - 在org.apache.spark:spark-sql-kafka-0-10_2.11:2.4.0
和org.apache.spark:spark-cassandra-connector_2.11:2.4.0
之间没有逗号org.apache.spark:spark-cassandra-connector_2.11:2.4.0
,因此spark-submit
将 cassandra 连接器视为 jar,而不是使用您的 python 文件。
当前版本的 Spark Cassandra 连接器不支持直接写入 Spark 结构化流数据 - 此功能仅在 DSE Analytics 中可用。 但是你可以通过使用foreachBatch
来解决这个foreachBatch
,就像这样(未经测试,可以在此处获得可用的 Scala 代码):
def foreach_batch_function(df, epoch_id):
df.format("org.apache.spark.sql.cassandra").option("keyspace","test")\
.option("table", "my_tables").mode('append').save()
query.writeStream.foreachBatch(foreach_batch_function).start()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.