Dataframe 如何从spark中的数据帧向cassandra插入集合类型

Dataframe 如何从spark中的数据帧向cassandra插入集合类型,dataframe,cassandra,set,Dataframe,Cassandra,Set,我有一个像这样的数据框- +-------------+---------------+-----------------+-------------+-------------+ | Address_Type| Address_Zip| Address_City| Name| ID| +-------------+---------------+-----------------+-------------+-------------+ |

我有一个像这样的数据框-

+-------------+---------------+-----------------+-------------+-------------+
| Address_Type|    Address_Zip|     Address_City|         Name|           ID|
+-------------+---------------+-----------------+-------------+-------------+
|         HOME|         141101|           Nevada|       George|       SO-123|
+-------------+---------------+-----------------+-------------+-------------+
|       OFFICE|         123561|               LA|       George|       SO-123|
+-------------+---------------+-----------------+-------------+-------------+
|         HOME|         141234|         New York|         Jane|       SC-128|
+-------------+---------------+-----------------+-------------+-------------+
|         BILL|         111009|             UTAH|         Jane|       SC-128|
+-------------+---------------+-----------------+-------------+-------------+
我试图将数据保存在cassandra中,其中有一个名为Address的字段,其类型为Set。现在我想保存地址,它是与地址标记关联的所有字段的组合。所以新的数据帧看起来像-

+-------------+-------------+----------------------------------------------------+
|         Name|           ID|                                             Address|
+-------------+-------------+----------------------------------------------------+
|       George|       SO-123|{"Address_Type: "HOME", "Address_City": "Nevada",...|
+-------------+-------------+----------------------------------------------------+
|         Jane|       SC-128|{"Address_Type: "HOME", "Address_City": "New York",.|
+-------------+-------------+----------------------------------------------------+
我可以很容易地把它保存到卡桑德拉桌上


我该怎么做呢?

需要做的就是将数据帧与Cassandra表匹配起来。因此,如果要插入类型为Set的Cassandra表。您只需要一个dataframe,其模式包含一列该名称的类型数组,其中这些行的内部结构与
地址
类型匹配

因此,在您的示例中,数据帧应该如下所示

|名称| ID |地址数组|
哪一张和卡桑德拉的桌子相匹配

|名称字符串、ID字符串、地址集|

与之匹配的命令将是

df.write.format(“org.apache.spark.sql.cassandra”).options(…).save()

看起来像UDT而不是集合?RussS:我需要插入一个表,其中地址是集合,其中将有地址类型和地址城市。一个用户可以有多个地址,因此字段设置为。。。。这听起来像是一套没有设置,因为每个“address有一个addressType和一个address citySets没有属性名,它们只有内容,注意,UDT集或行的DF会自动转换为C*UDT。所以你只需要保存到匹配的表中,它就可以工作了我是Spark的新手,我使用的是Java中的1.6.0。你能告诉我怎么做吗?