当前位置: 首页 > 知识库问答 >
问题:

火花数据帧保存AsTable不截断数据从Hive表

丰胤运
2023-03-14

我正在使用Spark 2.1.0和Java SparkSession来运行我的SparkSQL。我正在尝试保存一个数据集

ds.write().mode(SaveMode.Overwrite)
.option("header","true")
.option("truncate", "true")
.saveAsTable(ConfigurationUtils.getProperty(ConfigurationUtils.HIVE_TABLE_NAME));

第一次跑步后,桌子就掉了。当我重新运行它时,将创建带有加载数据的表。

即使使用截断选项也不能解决我的问题。SaveAsTable是否考虑截断数据而不是删除/创建表?如果是,在Java中正确的方法是什么?


共有1个答案

谈灵均
2023-03-14

这是我的问题提到阿帕奇JIRA。似乎到目前为止还没有解决。

https://issues.apache.org/jira/browse/SPARK-21036

 类似资料:
  • 我正在尝试使用Apache Spark,以便将具有多个连接和子选择的(大型)SQL查询的结果加载到来自Spark的DataFrame中,如从SQL查询创建Spark Dataframe中所述。 不幸的是,我这样做的尝试导致了拼花错误: 线程“main”组织中出现异常。阿帕奇。火花sql。AnalysisException:无法推断拼花地板的架构。必须手动指定。 我从谷歌看到的信息表明,当数据帧为空

  • 我想过滤掉具有“c2”列前3个字符的记录,无论是“MSL”还是“HCP”。 所以输出应该如下所示。 有谁能帮忙吗? 我知道df。过滤器($c2.rlike(“MSL”))--用于选择记录,但如何排除记录? 版本:Spark 1.6.2 Scala:2.10

  • 在PySpark中或者至少在Scala中,Apache Spark中是否有与Pandas Melt函数等价的函数? 到目前为止,我一直在用Python运行一个示例数据集,现在我想对整个数据集使用Spark。

  • [新加入Spark]语言-Scala 根据文档,RangePartitioner对元素进行排序并将其划分为块,然后将块分发到不同的机器。下面的例子说明了它是如何工作的。 假设我们有一个数据框,有两列,一列(比如“a”)的连续值从1到1000。还有另一个数据帧具有相同的模式,但对应的列只有4个值30、250、500、900。(可以是任意值,从1到1000中随机选择) 如果我使用RangePartit

  • 我的理解是Spark 1之间的一个重大变化。x和2。x是从数据帧迁移到采用更新/改进的数据集对象。 但是,在所有Spark 2. x文档中,我看到正在使用,而不是。 所以我问:在Spark 2. x中,我们是否仍在使用,或者Spark人员只是没有更新那里的2. x文档以使用较新的推荐的?

  • 如何使用Spark-Scala连接日期和时间列(两个字符串)