apache-spark - Hive 元存储中的上次访问时间更新

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

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

set hive.exec.pre.hooks = org.apache.hadoop.hive.ql.hooks.UpdateInputAccessTimeHook$PreExec;
但是,如果我使用 spark-sqlspark-shell ,它似乎不起作用,LAST_ACCESS_TIME不会在配置单元元存储中更新。
这是我阅读表格的方式:
>>> df = spark.sql("select * from db.sometable")
>>> df.show()
我已经在 hive-site.xml 中设置了上面的钩子(Hook)在这两个 /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
希望这可以帮助

关于apache-spark - Hive 元存储中的上次访问时间更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60385579/

相关文章:

apache-spark - spark.conf.set ("spark.driver.maxResultSize", '6g' ) 没有更新默认值 - PySpark

apache-spark - SparkSQL 列查询不显示列内容?

java - Spark 错误 - 不支持的类文件主要版本

java - 映射 JavaRDD 时获取 java.io.NotSerializableException

apache-spark - 为什么我不能使用 "cat file1.parquet file2. parquet > result.parquet"合并多个 Parquet 文件?

python - 指定 Parquet 属性 pyspark

scala - 为什么即使提交了 JAR,Spark 也没有建立 JDBC 驱动程序依赖性?

java - MapReduce程序,用于比较配置单元输出和平面文件

hadoop - 更改表分区

hadoop - 如何在cloudera quickstartVM -5.7.0中获取默认的HIVE_HOME?