Apache spark Cassandra连接器--joinWithCassandraTable和leftJoinWithCassandraTable之间的差异--无法解析符号

Apache spark Cassandra连接器--joinWithCassandraTable和leftJoinWithCassandraTable之间的差异--无法解析符号,apache-spark,cassandra,datastax,spark-cassandra-connector,Apache Spark,Cassandra,Datastax,Spark Cassandra Connector,我正试图通过使用datastax Cassandra连接器连接来访问来自Cassandra的数据。下面的代码适用于我。我试图在join之后总结RDD和Cassandra中的值列 tm(a.joinWithCassandraTable("ks","tbl").on(SomeColumns("key","key2","key3","key4","key5","key6","key7","key8","key9","key10","key11","key12","key13","key14","key

我正试图通过使用datastax Cassandra连接器连接来访问来自Cassandra的数据。下面的代码适用于我。我试图在join之后总结RDD和Cassandra中的值列

tm(a.joinWithCassandraTable("ks","tbl").on(SomeColumns("key","key2","key3","key4","key5","key6","key7","key8","key9","key10","key11","key12","key13","key14","key15","column1","column2","column3","column4","column5")).select("value1").map { case (ip, row) => IP(ip.key, ip.key2, ip.key3,ip.key4,ip.key5,ip.key6,ip.key7,ip.key8,ip.key9,ip.key10,ip.key11,ip.key12,ip.key13,ip.key14,ip.key15,ip.column1,ip.column2,ip.column3,ip.column4,ip.column5,ip.value1 + row.getLong("value1")) }.saveToCassandra("ks", "tbl"))
但是,当我尝试进行左连接时,它会给出一个“无法解析符号getLong” 我相信这是因为left join不能保证值,因为它可以为null,但我无法在scala中编写此代码

tm(a.leftJoinWithCassandraTable("ks","tbl").on(SomeColumns("key","key2","key3","key4","key5","key6","key7","key8","key9","key10","key11","key12","key13","key14","key15","column1","column2","column3","column4","column5")).select("value1").map { case (ip, row) => IP(ip.key, ip.key2, ip.key3,ip.key4,ip.key5,ip.key6,ip.key7,ip.key8,ip.key9,ip.key10,ip.key11,ip.key12,ip.key13,ip.key14,ip.key15,ip.column1,ip.column2,ip.column3,ip.column4,ip.column5,ip.value1 + row.getLong("value1")) }.saveToCassandra("ks", "tbl"))

感谢您的帮助。如果需要任何信息,请告诉我,我将尝试添加当您在Cassandra中没有获得数据时,您应该获得
选项[Row]
而不是
Row
对象

您可以编写以下内容,而不是
.map{case(ip,row)=>…}

.map{案例(ip,行)=>
排赛{
案例无=>ip
案例部分(数据)=>IP(..,IP.value1+data.getLong(“value1”))
}
}

在这种情况下-如果没有数据(
None
),则只需返回
IP
对象本身,如果有数据,则构建新的
IP
对象。成功了。我必须将整个方法的返回类型更改为returnunit(我之前没有指定任何内容),因为它抛出了一个错误,表示块是递归的。不知道为什么它是递归的