这个问题可能是this one的重复项,但给出的答案并不令人满意。

我在Zeppelin上运行了以下简单代码:
(与pyspark CLI相同的场景)

%spark2.pyspark
from pyspark.sql import HiveContext
sqlContext = HiveContext(sc)

df = sqlContext.read.format("csv").option("header", "false").option("mode", "DROPMALFORMED").load("/data/data1.csv")
df.write.mode('overwrite').saveAsTable("default.hive_spark");

然后 :
%spark2.pyspark
sqlDF = spark.sql("show tables")
sqlDF.show()

表明 :
+--------+----------------+-----------+
|database|       tableName|isTemporary|
+--------+----------------+-----------+
| default|      hive_spark|      false|
+--------+----------------+-----------+

但是当我登录到HIVE CLI(user:hive)时,此表未显示:
0: jdbc:hive2://ip-xxx.eu-west-3.com>USE default;
0: jdbc:hive2://ip-xxx.eu-west-3.com>SHOW TABLES;

+-----------+
| tab_name  |
+-----------+
| hive_test |
+-----------+

我试过了
sqlContext.uncacheTable("default.hive_spark")

我很困惑。

最佳答案

由于您正在使用hive2,因此请使用HiveWareHouseConnector

10-08 06:35
查看更多