【问题标题】:Pyspark inserting Time in Cassandra using datastax connectorPyspark 使用 datastax 连接器在 Cassandra 中插入时间
【发布时间】:2020-10-01 10:54:42
【问题描述】:

我将数据从 Pyspark 插入到 Cassandra,使用:

com.datastax.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 中是时间而在 python 中是字符串。

我想知道如何在不将任何内容转换为 Long 的情况下为 Cassandra 带来价值,我认为将 time 转换为 long 没有多大意义。

【问题讨论】:

    标签: pyspark cassandra datastax


    【解决方案1】:

    找到了!我检查了:

    https://docs.datastax.com/en/dse/6.0/dse-dev/datastax_enterprise/spark/sparkSupportedTypes.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')
    

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

    【讨论】:

      猜你喜欢
      • 2015-05-24
      • 2015-05-21
      • 2017-07-16
      • 2015-09-20
      • 2017-03-04
      • 2015-12-24
      • 2020-02-12
      • 2016-01-04
      • 2015-08-16
      相关资源
      最近更新 更多