通过spark job

时间:2017-10-26 18:13:32

标签: hadoop apache-spark hive hivecontext

我正在尝试在hadoop集群(BigInsight 4.1发行版)上创建hive表作为我的spark(1.5.1版本)作业的输出,并且我正面临权限问题。我的猜测是spark使用默认用户(在这种情况下' yarn'而不是作业提交者的用户名)来创建表,因此无法这样做。

我尝试自定义hive-site.xml文件,以设置有权创建配置单元表的经过身份验证的用户,但这不起作用。

我还尝试将Hadoop用户变量设置为经过身份验证的用户,但它也无法正常工作。

我想避免保存txt文件,然后创建hive表以优化性能并通过orc压缩减小输出的大小。

我的问题是:

  • 有没有办法调用spark数据帧api的写入功能 与指定的用户?
  • 是否可以使用oozie的工作流程文件选择用户名?
  • 有没有人有其他想法或曾经遇到过这个问题?

感谢。 Hatak!

1 个答案:

答案 0 :(得分:0)

考虑df保存您的数据,您可以写

在Java中:

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

您可以使用不同的SaveMode,例如Overwrite,Append

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

在Scala中:

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

根据您要保存的类型,可以指定许多其他选项。 Txt,ORC(带桶),JSON。