Spark:Hive查询

Spark:Hive查询,hive,apache-spark,hiveql,apache-spark-sql,parquet,Hive,Apache Spark,Hiveql,Apache Spark Sql,Parquet,我有一个日志文件,第一列是配置单元表中的分区 logSchemaRDD.registerTempTable("logs") hiveContext.sql("insert overwrite table logs_parquet PARTITION(create_date=select ? from logs) select * from logs") 如何构造查询以选择第一列(此处标记为?并确保我在分区中选择的一列与第二列select(*)匹配?您需要显式地枚举源列表和目标

我有一个日志文件,第一列是配置单元表中的分区

    logSchemaRDD.registerTempTable("logs")

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

如何构造查询以选择第一列(此处标记为?并确保我在分区中选择的一列与第二列select(*)匹配?

您需要显式地枚举源列表和目标列表中的列:在这种情况下,select*是不够的

insert overwrite table logs_parquet PARTITION(create_date) (col2, col3..) 
select col2,col3, .. col1 from logs
是的,编写查询需要做更多的工作,但是分区查询确实需要列与分区列最后一列的显式映射