首页 文章

通过spark工作创建配置表

提问于
浏览
1

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

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

我还尝试将Hadoop用户变量设置为经过身份验证的用户,但它也不起作用 .

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

我的问题是:

  • 有没有办法用指定用户调用spark数据帧api的写入功能?

  • 是否可以使用oozie的工作流程文件选择用户名?

  • 有没有人有其他想法或曾经遇到过这个问题?

谢谢 . Hatak!

1 回答

  • 0

    考虑 df 拿着你的数据,你可以写

    在Java中:

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

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

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

    在斯卡拉:

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

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

相关问题