Cassandra 我们能在卡桑德拉定义飞行中的科尔斯吗?

Cassandra 我们能在卡桑德拉定义飞行中的科尔斯吗?,cassandra,spark-dataframe,spark-streaming,Cassandra,Spark Dataframe,Spark Streaming,我在Spark数据框中有一个嵌套的json对象,需要存储在Cassandra中。我是Spark Streaming和Cassandra的新手,希望了解以下内容: 它必须被压平吗?我需要访问单独的列进行处理-如何展平嵌套的json 我知道卡桑德拉的早期版本(在权威指南中)是无模式的,现在仍然是这样吗?这意味着,如果第一行包含10个col,它将动态创建这些col,如果第二行只有2个col值(意味着其他col没有出现在传入的json中),那么该行将只保存2个col。还是在存储之前需要处理空值 1:可以

我在Spark数据框中有一个嵌套的json对象,需要存储在Cassandra中。我是Spark Streaming和Cassandra的新手,希望了解以下内容:

  • 它必须被压平吗?我需要访问单独的列进行处理-如何展平嵌套的json
  • 我知道卡桑德拉的早期版本(在权威指南中)是无模式的,现在仍然是这样吗?这意味着,如果第一行包含10个col,它将动态创建这些col,如果第二行只有2个col值(意味着其他col没有出现在传入的json中),那么该行将只保存2个col。还是在存储之前需要处理空值

  • 1:可以将整个JSON文档放在一列文本数据类型中;您还可以尝试从JSON映射更多字段,将它们转换为平面对象并构建一个映射,该映射也可以被索引。和Cassandra一样,您必须根据需要的查询设计您的模型

    2:表的结构定义严格,不能轻易地向行中添加任意列。必须更改整个CF/表才能这样做。另一方面,通过CQL3完全支持动态列 集群列(宽行)。因此,水平添加列是不可能的 但是,是的


    JSON值映射中省略的列被视为空插入(如果存在现有值,则会导致删除现有值)。

    1:您可以将整个JSON文档放入文本数据类型的一列中;您还可以尝试从JSON映射更多字段,将它们转换为平面对象并构建一个映射,该映射也可以被索引。和Cassandra一样,您必须根据需要的查询设计您的模型

    2:表的结构定义严格,不能轻易地向行中添加任意列。必须更改整个CF/表才能这样做。另一方面,通过CQL3完全支持动态列 集群列(宽行)。因此,水平添加列是不可能的 但是,是的

    JSON值映射中省略的列被视为空插入(如果存在现有值,则会导致删除现有值)

  • 我知道卡桑德拉的早期版本(在权威指南中)是无模式的,现在仍然是这样吗
  • 尽管CQL需要静态模式,但在内部,CQL分区是一个很宽的行,您可以使用集群键动态添加列。见和

  • 我知道卡桑德拉的早期版本(在权威指南中)是无模式的,现在仍然是这样吗

  • 尽管CQL需要静态模式,但在内部,CQL分区是一个很宽的行,您可以使用集群键动态添加列。请参阅和。

    谢谢!关于第1点。我添加了更多信息。我需要展平一个嵌套的json,它可以有动态的行数(不必每次都是结构中数组中相同的值数),我尝试了“分解”,但只分解我指定的列,而在我的最终数据帧中,我需要所有列(大约500个),谢谢!关于第1点。我添加了更多信息。我需要展平一个嵌套json,它可以有动态行数(不必每次都是结构中数组中相同的值数)。我尝试了“分解”,但只分解我指定的列,而在我的最终数据帧中,我需要所有列(大约500)