【发布时间】:2018-09-26 09:12:17
【问题描述】:
我有 twitter 数据存储在 hdfs 路径中。我可以使用 spark 数据框读取数据:
val hiveContext = new org.apache.spark.sql.hive.HiveContext(sc)
val df= hiveContext.read.json("/nifi/data/twitter/")
df.printSchema 和df.show 命令显示结果没有任何问题。
但是当我尝试将数据框存储到配置单元表时,我面临以下错误:
df.write.saveAsTable("tweets_32")
org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.hdfs.server.namenode.LeaseExpiredException): 没有租约 /apps/hive/warehouse/tweets_32/_temporary/0/_temporary/attempt_201809260508_0002_m_000002_0/part-r-00002-c204b592-dc2a-4b2f-bc39-54afb237a6cb.gz.parquet(inode 1173647):文件不存在。 [租。持有者: DFSClient_NONMAPREDUCE_14557453_1,挂起创建:1]>
谁能告诉我,这可能是什么原因?
【问题讨论】:
-
我不确定错误,但以下是我想到的要点:尝试使用 sparksession 而不是 hivecontext。 Sparksession对象封装了hivecontext & sqlcontext
标签: apache-spark hadoop hive apache-spark-sql