我正在使用Spark SQL读取一个配置单元表,并将其分配给一个scala val
val x = sqlContext.sql("select * from some_table")
y.write.mode(SaveMode.Overwrite).saveAsTable().insertInto("some_table")
有什么方法可以绕过这个错误吗?我需要将记录插入到同一个表中。
嗨,我试着按建议做,但仍然得到同样的错误。
val x = sqlContext.sql("select * from incremental.test2")
val y = x.limit(5)
y.registerTempTable("temp_table")
val dy = sqlContext.table("temp_table")
dy.write.mode("overwrite").insertInto("incremental.test2")
scala> dy.write.mode("overwrite").insertInto("incremental.test2")
org.apache.spark.sql.AnalysisException: Cannot insert overwrite into table that is also being read from.;
您应该首先将数据表y
保存在临时表中
y.write.mode("overwrite").saveAsTable("temp_table")
然后可以覆盖目标表中的行
val dy = sqlContext.table("temp_table")
dy.write.mode("overwrite").insertInto("some_table")
我在java中开发了一个工作正常的配置单元udf,我的函数返回输入与配置单元表中列之间的最佳匹配,因此它有以下简化的伪代码: 我的问题是,如果这个函数是由Hive调用的,为什么我需要在代码中连接到Hive?我可以使用使用我的功能的用户所连接的当前连接吗?
states是按国家分区的,所以当我对上面的数据集进行计数时,查询会扫描所有分区。但是如果我这样读的话- 分区被正确修剪。有人能解释为什么当您将表映射到case类时会丢失分区信息吗?
当我使用 pyflink 蜂巢 sql 读取数据插入到 es 中时,抛出以下示例:环境: flink 1.11.2 flink-sql-连接器-hive-3.1.2_2.11-1.11.2.jar hive 3.1.2 如何解决这个问题?
我试图从Spark Sql将数据插入到Hive外部表中。我通过以下命令创建了hive外部表 在spark工作中,我编写了以下代码Dataset df=session。read()。选项(“标题”、“真”)。csv(csvInput); 每次运行这段代码时,我都会遇到以下异常
您的回应将不胜感激。谢了!