【发布时间】:2020-07-03 17:59:52
【问题描述】:
是否可以更改 cassandra 中的所有数据值
来自:2020-05-18T14:18:45.878Z
到1593402243336(如 Instant Java 类型)
此列中所有数据的类型均为text
我想知道如何编写将日期从例如2020-05-18T14:18:45.878Z 更改为1593402243336 的脚本
【问题讨论】:
标签: cassandra
是否可以更改 cassandra 中的所有数据值
来自:2020-05-18T14:18:45.878Z
到1593402243336(如 Instant Java 类型)
此列中所有数据的类型均为text
我想知道如何编写将日期从例如2020-05-18T14:18:45.878Z 更改为1593402243336 的脚本
【问题讨论】:
标签: cassandra
在 Cassandra 中,有一个单独的 timestamp 类型来保存此类信息。在内部,它将数据存储为 8 字节长值,以毫秒为单位表示时间。该值通过驱动程序访问,并且可以转换为特定于所使用的编程语言的类型的值。如果您通过cqlsh 访问这些值,则需要将它们打印为2020-05-18T14:18:45.878Z,但实际上它仍然是long 引擎盖下的类型。
要执行这样的转换,您需要两件事:
timestamp 类型 - 您无法更改现有列的类型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()
【讨论】: