apache-spark - Hive 元存储中的上次访问时间更新
问题描述
我在我的 Hive 控制台/.hiverc
文件中使用以下属性,因此每当我查询表时,它都会更新Hive 元存储表中的LAST_ACCESS_TIME
列。TBLS
set hive.exec.pre.hooks = org.apache.hadoop.hive.ql.hooks.UpdateInputAccessTimeHook$PreExec;
但是,如果我使用spark-sql
or spark-shell
,它似乎不起作用并且LAST_ACCESS_TIME
不会在 hive 元存储中更新。
这是我阅读表格的方式:
>>> df = spark.sql("select * from db.sometable")
>>> df.show()
hive-site.xml
我已经在/etc/hive/conf
和中设置了上面的钩子/etc/spark/conf
。
解决方案
您的代码可能会跳过一些配置单元集成。我的回忆是,要获得更多的 Hive-ish 集成,您需要引入 HiveContext,如下所示:
from pyspark import SparkContext, SparkConf, HiveContext
if __name__ == "__main__":
# create Spark context with Spark configuration
conf = SparkConf().setAppName("Data Frame Join")
sc = SparkContext(conf=conf)
sqlContext = HiveContext(sc)
df_07 = sqlContext.sql("SELECT * from sample_07")
https://docs.cloudera.com/runtime/7.2.7/developing-spark-applications/topics/spark-sql-example.html
希望这可以帮助
推荐阅读
- audio - 24kHz 音频文件问题:不支持比特率 64000
- kubernetes - 如何在位于不同区域的两个私有 GCP 集群之间建立通信?
- javascript - 使用 javascript 返回 sqlite 事务
- html - CSS选择器:有没有办法选择整个html中具有相同类名的最后一个元素?
- python - 如何使用 Python startswith 方法来组合 unicode 和 ascii 字符串?
- c# - 找出多个最长的单词并计算它们重复的次数
- mysql - 如何使用 galera 集群测试关键读取和慢速同步
- javascript - 使用javascript将节点命令传递给cmd
- dynamics-crm - 如何在 Dynamics 365 中定义项目的父子关系?
- xamarin.forms - 跨平台:如何在 UWP 中设置不同的递增内部版本号并保持版本名称,如 iOS/Android