通过spark作业创建配置单元表

ie3xauqp  于 2021-06-02  发布在  Hadoop
关注(0)|答案(1)|浏览(324)

我正试图在hadoop集群(bigdinsight 4.1发行版)上创建配置单元表作为spark(1.5.1版本)作业的输出,并且面临权限问题。我猜spark使用默认用户(在本例中是'yarn'而不是作业提交者的用户名)来创建表,因此没有这样做。
我试图自定义hive-site.xml文件以设置具有创建配置单元表权限的经过身份验证的用户,但没有成功。
我还尝试将hadoop用户变量设置为经过身份验证的用户,但也没有成功。
我希望避免保存txt文件,然后创建配置单元表,通过orc压缩来优化性能和减小输出的大小。
我的问题是:
有没有办法用指定的用户调用spark dataframe api的write函数?
是否可以使用oozie的工作流文件选择用户名?
有没有人有别的想法或者曾经面对过这个问题?
谢谢。哈塔克!

pbgvytdp

pbgvytdp1#

考虑 df 拿着你的数据,你可以写
在java中:

df.write().saveAsTable("tableName");

您可以使用不同的保存模式,如覆盖、附加

df.write().mode(SaveMode.Append).saveAsTable("tableName");

在scala中:

df.write.mode(SaveMode.Append).saveAsTable(tableName)

根据要保存的类型,可以指定许多其他选项。txt,orc(带bucket),json。

相关问题