dev*_*per 5 hive apache-spark apache-spark-sql pyspark
我在我的 Hive 控制台/.hiverc
文件中使用以下属性,以便每当我查询表时,它都会更新Hive 元存储表中的LAST_ACCESS_TIME
列TBLS
。
set hive.exec.pre.hooks = org.apache.hadoop.hive.ql.hooks.UpdateInputAccessTimeHook$PreExec;
Run Code Online (Sandbox Code Playgroud)
但是,如果我使用spark-sql
or spark-shell
,它似乎不起作用并且LAST_ACCESS_TIME
不会在 hive Metastore 中更新。
这是我阅读表格的方式:
>>> df = spark.sql("select * from db.sometable")
>>> df.show()
Run Code Online (Sandbox Code Playgroud)
我已经hive-site.xml
在/etc/hive/conf
和 中设置了上述钩子/etc/spark/conf
。
您的代码可能会跳过一些 Hive 集成。我记得,要获得更多 Hive 式集成,您需要引入 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")
Run Code Online (Sandbox Code Playgroud)
https://docs.cloudera.com/runtime/7.2.7/developing-spark-applications/topics/spark-sql-example.html
希望这可以帮助
归档时间: |
|
查看次数: |
398 次 |
最近记录: |