【问题标题】:Last Access Time Update in Hive metastoreHive 元存储中的上次访问时间更新
【发布时间】:2020-02-24 23:44:18
【问题描述】:

我在我的 Hive 控制台/.hiverc 文件中使用以下属性,因此每当我查询表时,它都会更新 Hive 元存储的 TBLS 表中的 LAST_ACCESS_TIME 列。

set hive.exec.pre.hooks = org.apache.hadoop.hive.ql.hooks.UpdateInputAccessTimeHook$PreExec;

但是,如果我使用 spark-sqlspark-shell,它似乎不起作用,LAST_ACCESS_TIME 不会在 hive 元存储中更新。

这是我阅读表格的方式:

>>> df = spark.sql("select * from db.sometable")
>>> df.show()

我在hive-site.xml/etc/hive/conf/etc/spark/conf 中都设置了上述钩子。

【问题讨论】:

    标签: apache-spark pyspark hive apache-spark-sql


    【解决方案1】:

    您的代码可能会跳过某些配置单元集成。我的回忆是,要获得更多的 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

    希望对你有帮助

    【讨论】:

      猜你喜欢
      • 2020-08-08
      • 1970-01-01
      • 2021-08-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-16
      相关资源
      最近更新 更多