2017-02-23 67 views
1

我有一个完全写入Hive分区表的Spark应用程序。我在Dataframe中添加了两个新列,我坚持在Hive中,它停止写入Hive,并且没有插入任何行。我有一个DF3 = DF1.join(DF2, where(...), "inner")。我坚持DF3。连接的日志输出显示出来,没有错误日志。Spark没有写入Hive

  1. 在DF3中DF1和DF2的所有列会自动出现吗?

  2. 我在Hive模式中添加了2个新的列,我在代码和Hive模式之间保持顺序(即在两个地方的最后一列之后)。任何想法为什么它不写入蜂巢?

+0

刷新蜂巢元数据? – Andrew

+0

是的,他们看起来不错。这个连接是否正确?看起来像是挂在这里:DataFrame DFJoin = DF1.join(DF2,DF1.col(“device”)。equalTo(DF2.col(“id”))or(DF1.col(“device”)。equalTo DF2.col(“new_id”))),“inner”); – Mark

回答

0

试试你的描述你的数据框和你的蜂巢表和他们相比通过以下任一

MSCK REPAIR TABLE 
REFRESH [db_name.]table_name 
INVALIDATE METADATA [table_name]