【问题标题】:spark cassandra connector missing data while reading backspark cassandra 连接器在回读时丢失数据
【发布时间】:2020-10-11 02:53:17
【问题描述】:

我正在使用 spark cassandra 连接器(python)将 3000000 行和 8 列的数据写入 cassandra,当我回读时,我只得到 50000 行。 当我检查 cqlsh 中的行数时,还有 50000 中的行数只有我的数据去哪里了 spark -cassandra 连接器有问题吗?

这是我的火花配置

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()

【问题讨论】:

    标签: apache-spark cassandra-3.0 spark-cassandra-connector


    【解决方案1】:

    最可能的原因是您没有正确的主键 - 结果,数据被覆盖。您需要确保输入数据的每一行都由列集唯一标识。

    附:如果您只是编写存储在 CSV 之类的数据中的数据,您可以查看像 DSBulk 这样的工具,该工具针对从 Cassandra 加载/卸载数据进行了高度优化。

    【讨论】:

    • 是的,我使用单调递增的 id 来添加主键,并且重复
    猜你喜欢
    • 2016-08-14
    • 2016-01-05
    • 2021-11-21
    • 1970-01-01
    • 1970-01-01
    • 2017-01-13
    • 1970-01-01
    • 2023-03-14
    • 2017-08-05
    相关资源
    最近更新 更多