Pyspark 使用 datastax 连接器在 Cassandra 中插入时间

Pyspark inserting Time in Cassandra using datastax connector

我正在使用以下方法将数据从 Pyspark 插入到 Cassandra:

com.datastax.spark:spark-cassandra-connector_2.11:2.4.0

在我插入的变量中还有时间,连接器不喜欢它。 如果我尝试发送:'16:51:35.634652' 并且收到以下错误:

com.datastax.spark.connector.types.TypeConversionException:无法将 16:51:35.634652 类型 class java.lang.String 的对象转换为 java.lang.Long .

基本上,转换器不喜欢字符串,它想将其转换为 java.lang.long,而实际上在 cassandra 中是时间,在 python 中是字符串。

我想知道我怎样才能在不将任何东西转换为 Long 的情况下在 Cassandra 上带来价值,我认为将时间转换为 Long 没有多大意义。

找到了!我检查了:

https://docs.datastax.com/en/dse/6.0/dse-dev/datastax_enterprise/spark/sparkSupportedTypes.html

我发现:CQL 时间戳 -> SCALA:长,java.util.Date,java.sql.Date,org.joda.time.DateTime

所以我转换了我的变量

import datetime

date_time_1 = '11:12:27.243860'

date_time_obj = datetime.datetime.strptime(date_time_str, %H:%M:%S.%f')

已发送至连接器,一切正常!