【问题标题】:Spark time datatype equivalent to MYSQL TIMESpark 时间数据类型等价于 MYSQL TIME
【发布时间】:2016-07-13 16:21:12
【问题描述】:

我正在通过 JDBC 从 MYSQL 导入数据以触发,其中一列的时间类型(SQL 类型 TIME 和 JDBC 类型 java.sql.Time)具有较大的小时值(例如:168:03:01)。 Spark将它们转换为时间戳格式并在读取三位数小时时导致错误。如何处理Spark中的时间类型

【问题讨论】:

    标签: sql jdbc time apache-spark


    【解决方案1】:

    此时您最好的方法可能是在 Spark 实际读取数据之前转换数据并直接在您的应用程序中对其进行解析。 JDBC 数据源允许您将有效的子查询作为dbtable 选项或table 参数传递。这意味着您可以执行类似的操作:

    sqlContext.read.format("jdbc").options(Map(
      "url"     -> "xxxx",
      "dbtable" -> "(SELECT some_field, CAST(time_field AS TEXT) FROM table) tmp",
    ))
    

    并使用一些内置函数组合在 Spark 中将其转换为适用于您的应用程序的类型。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-20
      • 2019-05-16
      • 1970-01-01
      • 2012-04-21
      • 2012-09-30
      相关资源
      最近更新 更多