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を変換する必要があると思いますdata を integer/long 型に変換し、それらが Date を表しているという事実を通知します。もしそうなら、どうすればSparkでこれを行うことができますか? それとも、何か他のことをする必要がありますか?

4

1 に答える 1

4

私はまったく同じ問題に直面しています。Parquet ファイルの DateType と Timestamp のサポートが Spark 1.3 に追加されるようです (詳細はhttps://github.com/apache/spark/pull/3820およびhttps://issues.apache.org/jira/browse/を参照)。 SPARK-4709 )。

Spark は INT96 型の Parquet を使用して Timestamp 型を格納します (Impala と同様)。

于 2015-02-22T16:02:26.127 に答える