3

ログ ファイルがあり、最初の列は Hive テーブルのパーティションになります。

    logSchemaRDD.registerTempTable("logs")

    hiveContext.sql("insert overwrite table logs_parquet PARTITION(create_date=select ? from logs) select * from logs")

最初の列 (ここでは ? としてマーク) を選択し、パーティションで選択した列が 2 番目の選択 (*) と一致するようにクエリを作成するにはどうすればよいですか?

4

1 に答える 1

2

ソース リストとターゲット リストの両方で列を明示的に列挙する必要があります。この場合、select * では十分ではありません。

insert overwrite table logs_parquet PARTITION(create_date) (col2, col3..) 
select col2,col3, .. col1 from logs

はい、クエリを作成するのはより多くの作業です。ただし、パーティショニング クエリでは、最後にパーティショニング カラムを使用してカラムを明示的にマッピングする必要があります。

于 2015-03-13T20:59:20.283 に答える