Fab*_*ich 3 avro apache-spark parquet
我有一个 spark 数据框,我想将它保存为 parquet,然后使用 parquet-avro 库加载它。
我的数据框中有一个时间戳列,它被转换为镶木地板中的 INT96 时间戳列。但是 parquet-avro不支持 INT96格式并抛出。
有没有办法避免它?在 avro 支持的东西中将时间戳写入镶木地板时,是否可以更改 Spark 使用的格式?
我目前使用
date_frame.write.parquet("path")
Run Code Online (Sandbox Code Playgroud)
阅读火花代码我找到了spark.sql.parquet.outputTimestampType 属性
spark.sql.parquet.outputTimestampType :
设置 Spark 将数据写入 Parquet 文件时使用的 Parquet 时间戳类型。
INT96 是 Parquet 中一种非标准但常用的时间戳类型。
TIMESTAMP_MICROS 是 Parquet 中的标准时间戳类型,它存储 Unix 纪元的微秒数。
TIMESTAMP_MILLIS 也是标准的,但精度为毫秒,这意味着 Spark 必须截断其时间戳值的微秒部分。
所以我可以做到以下几点:
spark.conf.set("spark.sql.parquet.outputTimestampType", "TIMESTAMP_MICROS")
data_frame.write.parquet("path")
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3444 次 |
| 最近记录: |