使用datastax连接器在cassandra中的pyspark插入时间

x759pob2  于 2021-06-13  发布在  Cassandra
关注(0)|答案(1)|浏览(290)

我将Pypark的数据插入到cassandra,使用:
com.datasax公司。spark:spark-cassandra-connector_2.11:2.4.0
在我插入的变量中,还有时间,连接器不喜欢它。如果我尝试发送:“16:51:35.634652”并收到以下错误:
com.datastax.spark.connector.types.typeconversionexception:无法将类型类java.lang.string的对象16:51:35.634652转换为java.lang.long。
基本上,转换器不喜欢字符串,它希望将其转换为java.lang.long,而实际上在cassandra中是time,在python中是string。
我想知道我怎么能在不把任何东西转换成long的情况下给cassandra带来价值,我不认为把时间转换成long有什么意义。

dvtswwa3

dvtswwa31#

找到了!我查了一下:
https://docs.datastax.com/en/dse/6.0/dse-dev/datastax_enterprise/spark/sparksupportedtypes.html
我发现:cql timestamp->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')

发送到连接器,一切正常!

相关问题