4

我想在编译时使用未知格式的数据创建 Parquet 文件。稍后我将模式作为文本获取,并且我知道某些列包含日期和时间。我想使用 Spark 和 Java 来做到这一点。所以我按照http://spark.apache.org/docs/1.2.1/sql-programming-guide.html#programmatically-specifying-the-schema并创建了具有适当类型的模式。我尝试使用 SparkDataType.TimestampTypeDataType.DateType类似日期的列。但他们都没有工作。当我尝试保存文件时,JavaSchemaRDD.saveAsParquetFile我收到错误Unsupported datatype+ 我尝试的日期类型。我试过这个,emptyRDD所以数据转换没有任何问题。

调查后:http: //parquet.incubator.apache.org/documentation/latest/https://github.com/Parquet/parquet-format/blob/master/LogicalTypes.md我认为我需要转换数据转换成一些整数/长类型,并告知它们代表日期的事实。如果是这样,我该如何在 Spark 中做到这一点?或者也许我需要做点别的?

4

1 回答 1

4

我面临着完全相同的问题。似乎在 Spark 1.3 中将添加对 Parquet 文件的 DateType 和 Timestamp 支持(更多信息在https://github.com/apache/spark/pull/3820https://issues.apache.org/jira/browse/火花4709)。

Spark 将使用 INT96 类型的 Parquet 来存储 Timestamp 类型(就像 Impala)。

于 2015-02-22T16:02:26.127 回答