我有一个具有以下结构的Cassandra表:
CREATE TABLE myKeyspace.myTable (
rowkey text,
columnname text,
columnvalue text,
PRIMARY KEY (rowkey, columnname)
)我希望插入与火花卡桑德拉连接器相同的数据。
我的Spark数据集属于Dataset[Seq[(String, String, String)]]类型。
我希望将其转换为Dataset[(String, String, String)],以便可以使用.rdd.saveToCassandra接口将其插入到表中。
请协助转换,或者是否有使用相同Dataset[Seq[(String, String, String)]]的直接方法。
发布于 2020-05-23 16:39:21
在Dataset[Seq[(String, String, String)]]上调用flatMap,检查下面&如果不能工作,请让我知道。
scala> dds
res124: org.apache.spark.sql.Dataset[Seq[(String, String, String)]] = [value: array<struct<_1:string,_2:string,_3:string>>]
scala> dds.printSchema
root
|-- value: array (nullable = true)
| |-- element: struct (containsNull = true)
| | |-- _1: string (nullable = true)
| | |-- _2: string (nullable = true)
| | |-- _3: string (nullable = true)
scala> dds.flatMap(d => d)
res126: org.apache.spark.sql.Dataset[(String, String, String)] = [_1: string, _2: string ... 1 more field]https://stackoverflow.com/questions/61969383
复制相似问题