gpt4 book ai didi

apache-spark - Spark Full Rdd joinWithCassandraTable java.lang.IllegalArgumentException : requirement failed: Invalid row size: instead of

转载 作者:行者123 更新时间:2023-12-04 09:01:00 24 4
gpt4 key购买 nike

  • 我目前正在尝试将 spark 数据框加入 cassandra 表。
  • 遗憾的是,我们无法立即升级到新的 Datastax 连接器 2.5.0 并使用直接连接
  • 所以我正在尝试使用现有的 Rdd 方法 joinWithCassandraTable

  • 这是我的示例代码
    # Cassandra Table Definition 

    custId: text PRIMARY KEY
    custName: text
    custAddress: text

    val testDF = Seq(("event-01", "cust-01"), ("event-02", "cust-02")).toDF(("eventId", "custId"))

    val resultRdd = testDF
    .rdd
    .leftJoinWithCassandraTable(
    keyspaceName = "my_key_space",
    tableName = "cust_table",
    selectedColumns = AllColumns,
    joinColumns = SomeColumns("custId")
    )
    .map { case (sparkRow, cassandraRow) =>
    val resultStruct = cassandraRow
    .map(r => Row.fromSeq(r.columnValues))
    .orNull
    Row.fromSeq(sparkRow.toSeq :+ resultStruct)
    }
  • 这会抛出一个 java.lang.IllegalArgumentException:要求失败:行大小无效:2 而不是 1
  • 如果我限制 testDF只需 custId 列,那么这工作正常。
  • 我是不是在某个地方犯了错误。我如何在 Full Rdd 上执行连接而不是仅使用键列的投影
  • 最佳答案

    您需要使用 .on(SomeColumns("custId"))紧接 leftJoinWithCassandraTable 之后...
    我有 the blog post on the efficient join with Cadsandra ,它也描述了 RDD API ......

    关于apache-spark - Spark Full Rdd joinWithCassandraTable java.lang.IllegalArgumentException : requirement failed: Invalid row size: instead of,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63566986/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com