【发布时间】:2021-06-01 15:48:24
【问题描述】:
在检查所有来源后发现 datastax-spark-cassandra 连接器支持在 cassandra 中使用 scala 和 java 中的 rdd 自动创建表。对于 pyspark,可以使用另一个包来完成这项工作——https://github.com/anguenot/pyspark-cassandra。但即使有了这个包也无法自动创建表。使用数据框,我根本没有找到任何选择。我是 pyspark 和 cassandra 的新手,非常感谢任何帮助。也尝试仅使用 anguenot 包作为依赖项。 火花版本:2.4.7 Cassandra:最新的 docker 镜像
Pyspark shell >> pyspark --packages anguenot/pyspark-cassandra:2.4.0,com.datastax.spark:spark-cassandra-connector_2.11:2.5.1
>>> spark = SparkSession.builder.master('local[*]').appName('cassandra').config("spark.cassandra.connection.host", "ip").config("spark.cassandra.connection.port", "port").config("spark.cassandra.auth.username", "username").config("spark.cassandra.auth.password", "password").getOrCreate()
>>> from datetime import datetime
>>> rdd = sc.parallelize([{
... "key": k,
... "stamp": datetime.now(),
... "tags": ["a", "b", "c"],
... "options": {
... "foo": "bar",
... "baz": "qux",
... }
... } for k in ["x", "y", "z"]])
>>> rdd.saveToCassandra("test", "testTable")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'RDD' object has no attribute 'saveToCassandra'
【问题讨论】:
-
您对 Spark 2.4 有硬性要求吗?或者你可以升级到 Spark 3?
-
将检查 Spark3
标签: apache-spark pyspark cassandra rdd spark-cassandra-connector