使用 pyspark 向 hive 表添加注释
Posted
技术标签:
【中文标题】使用 pyspark 向 hive 表添加注释【英文标题】:Add comments to hive tables using pyspark 【发布时间】:2019-11-18 15:13:39 【问题描述】:我正在通过 PySpark 创建配置单元表。
有没有办法在写入 hive 之前将 cmets 添加到每一列?
例子:
df = spark.table('sometable') # 添加 cmets df.write.saveAsTable('mytablewithcmets')
【问题讨论】:
【参考方案1】:列类的alias
方法采用metadata
选项,其中可能包含注释。
df_with_column_comment = df.select( df.col.alias( 'col',
metadata = 'comment': 'Column description'
) )
据我所知,列是不可变的,因此在创建后无法添加评论。
【讨论】:
【参考方案2】:登录 pyspark shell
bash$ pyspark
>>> spark.sql("create table cmnt(id string COMMENT 'new')")
Then login to hive cli:
hive> desc formatted cmnt;
OK
# col_name data_type comment
id string new
然后就可以看到hive表中的cmets了!
【讨论】:
谢谢@Shu,是否可以在从pyspark保存表格的同时添加cmets?例如:df.write.saveAsTable('mytable') 这样mytable的每一列都有cmets。 @gr.kr,我认为不可能,我们只能在创建 hive 表时将 cmets 添加到列中! 感谢舒的回复【参考方案3】:CREATE TABLE table_name( column1 STRING, column2 STRING COMMENT "some comment", column3 LONG) USING csv OPTIONS (header true, path '/data/table.csv')
【讨论】:
我正在寻找使用 pyspark 的东西。 而不是使用 hiveql @gr.kr 你可以使用 spark SQL 用 cmets 创建表。 感谢@dassum,我希望使用 df.write.saveAsTable('') 在每列上使用 cmets 动态创建表。 FWIW,它似乎提供了an answer,即使该答案对提问者没有用处。如果它不正确,那就是反对票。以上是关于使用 pyspark 向 hive 表添加注释的主要内容,如果未能解决你的问题,请参考以下文章
将 sql server jar 添加到 pyspark 的类路径后无法查询 hive