我正在使用Pyspark向Cassandra插入数据。
com.datastax.spark:spark-cassandra-connector_2.11:2.4.0。
在我插入的变量中,也有时间,但连接器不喜欢它。如果我试图发送:'16:51:35.634652',我收到以下错误。
com.datastax.spark.connector.type.TypeConversionException: Cannot convert object 16:51:35.634652 of type class java.lang.String to java.lang.Long.
基本上,转换器不喜欢字符串,它想把它转换为java.lang.long,而实际上在cassandra中是time,在python中是string。
我想知道我怎么才能在Cassandra上把值带过来,而不把任何东西转换成Long,我不认为把时间转换成Long有什么意义。
找到了 我有一个检查上。
https:/docs.datastax.comendse6.0dse-devdatastax_enterprisesparksparkSupportedTypes.html。
我发现。CQL时间戳 -> SCALA: Long, 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')
送到接头处,一切正常!