我需要使用pySpark在我的一个Hive表中设置一个自定义属性。 通常,我只需要在任何Hive界面中运行以下命令即可:
ALTER TABLE table_name SET TBLPROPERTIES ('key1'='value1');
但是问题是,我可以在pySpark脚本中完成同样的工作吗?
谢谢!
答案 0 :(得分:0)
嗯,这实际上很容易...可以在pySpark中使用sqlContext进行设置:
sqlContext.sql("ALTER TABLE table_name SET TBLPROPERTIES('key1' = 'value1')")
它将返回一个空的DataFrame:DataFrame[]
但是该属性实际上存在于目标表上。可以使用以下类似方法检索它:
sqlContext.sql("SHOW TBLPROPERTIES table_name('key1')").collect()[0].asDict()
{'value': u'value1'}