gpt4 book ai didi

将日期更改为即时类型的 Cassandra 脚本

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

是否可以更改cassandra中的所有数据值
来自:2020-05-18T14:18:45.878Z1593402243336 (如 Instant Java 类型)
此列中的所有数据均属于 text 类型
我想知道如何编写一个更改日期的脚本,例如 2020-05-18T14:18:45.878Z1593402243336

最佳答案

在 Cassandra 中,有一个单独的 timestamp键入以保留此类信息。在内部,它将数据存储为 8 字节长的值,以毫秒为单位表示时间。该值通过驱动程序访问,并且可以转换为特定于所使用的编程语言的类型的值。如果您通过 cqlsh 访问这些值您需要将它们打印为 2020-05-18T14:18:45.878Z ,但实际上它仍然是 long在引擎盖下键入。
要执行此类转换,您需要做两件事:

  • 您需要添加另一列 timestamp类型 - 您不能更改现有列的类型
  • 您需要使用一些工具来执行此类转换,但这实际上取决于您的要求。你可以这样做,例如:
  • Spark - 使用 Spark Cassandra Connector 做类似的事情

  • val data = { spark.read.format("org.apache.spark.sql.cassandra")
    .options(Map( "table" -> "", "keyspace" -> ""))
    .load().withColumnRenamed("text_column", "date_column")}
    data.write.format("org.apache.spark.sql.cassandra")
    .options(Map("table" -> "", "keyspace" -> "")).mode("append").save()
  • DSBulk .您可以将数据库中的数据卸载到磁盘上,然后重新加载,但通过提供自定义映射-m,使用时间戳列而不是文本列。选项。有一系列关于 DSBulk 的博客文章,可以提供更多信息和示例:1 , 2 , 3 , 4 , 5 , 6
  • 关于将日期更改为即时类型的 Cassandra 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62711959/

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