spark cassandra连接器在读回时丢失数据

toe95027  于 2021-05-29  发布在  Spark
关注(0)|答案(1)|浏览(468)

我正在使用spark cassandra connector(python)向cassandra写入300万行8列的数据,当我回读时,只得到50000行。当我检查cqlsh中的行数时,也有50000中的行数只有我的数据去了哪里spark-cassandra连接器有问题吗?
这是我的spark配置

spark = SparkSession.builder.appName("das_archive").config(
"spark.driver.memory", "25g").config('spark.cassandra.connection.host',
                                     '127.0.0.1').config(
'spark.jars.packages',
'datastax:spark-cassandra-connector:2.4.0-s_2.11')

df.write.format("org.apache.spark.sql.cassandra").mode('append').options(
    table='shape1', keyspace="shape_db1").save(

阅读

load_options = {"table": "shape1", "keyspace": "shape_db1",
                "spark.cassandra.input.split.size_in_mb": "1000",
                'spark.cassandra.input.consistency.level': "ALL"}
data_frame = spark.read.format("org.apache.spark.sql.cassandra").options(
  **load_options).load()
vxqlmq5t

vxqlmq5t1#

最可能的原因是您没有正确的主键-结果,数据被覆盖。您需要确保输入数据的每一行都由列集合唯一标识。
p、 如果您只是在编写存储在csv之类的东西中的数据,您可以使用dsbulk之类的工具,它对向cassandra加载/从cassandra卸载数据进行了大量优化。

相关问题