作者热门文章
- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我在 spark 中有一个表employee_1
,带有属性 id 和 name(带有数据),另一个表 employee_2
具有相同的属性,我想通过增加带有 +1 的 id 值
WITH EXP AS (SELECT ALIASNAME.ID+1 ID, ALIASNAME.NAME NAME FROM employee_1 ALIASNAME)
INSERT INTO TABLE employee_2 SELECT * FROM EXP;
我在 HDFS 位置有一个文件(包含数据)。
当我从后端运行测试程序时,它成功了。但数据未加载。 employee_2
为空。
注意:如果您在 Hive 中运行上面的 with 子句,它将成功并加载数据。但是在 spark 中它不会在 1.6 中?
最佳答案
问题不是 WITH 语句,而是导致问题的 INSERT INTO 语句。
这是一个使用 .insertInto() 样式而不是“INSERT INTO”SQL 的工作示例:
val s = Seq((1,"foo"), (2, "bar"))
s: Seq[(Int, String)] = List((1,foo), (2,bar))
val df = s.toDF("id", "name")
df.registerTempTable("df")
sql("CREATE TABLE edf_final (id int, name string)")
val e = sql("WITH edf AS (SELECT id+1, name FROM df cook) SELECT * FROM edf")
e.insertInto("edf_final")
另一种选择是使用 df.write.mode("append").saveAsTable("edf_final")
样式。
关于hadoop - Spark 是否支持 With 子句?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43979730/
我是一名优秀的程序员,十分优秀!