apache-spark - 为什么 insertInto 失败并显示 "assertion failed: No plan for InsertIntoTable"?

标签 apache-spark

我正在使用 SparkSql 进行查询。我正在尝试类似的事情:

val sqc = new SQLContext(sc);
import sqc.createSchemaRDD

var p1 = Person("Hari",22)
val rdd1 = sc.parallelize(Array(p1))    
rdd1.registerAsTable("data")

var p2 = Person("sagar", 22)
var rdd2 = sc.parallelize(Array(p2))
rdd2.insertInto("data")

但出现错误

"java.lang.AssertionError: assertion failed: No plan for InsertIntoTable Map(), false"

似乎我使用 insertInto 的方式错误?

最佳答案

我也遇到了正常 SchemaRDD 的错误。当我尝试使用 Parquet 文件支持的 SchemaRDD 进行 insertInto 时,它成功了。 insertInto 方法看起来只支持 Parquet 支持的表。

1.1.0 API documentation on SQLContext告诉 Parquet 文件中的表可用于 insertInto 操作。 > “这个注册的表可以作为以后insertInto操作的目标。”

关于apache-spark - 为什么 insertInto 失败并显示 "assertion failed: No plan for InsertIntoTable"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25500374/

相关文章:

apache-spark - 如何将表转换为 Spark Dataframe

r - 使用 Sparklyr 将多个列值取消嵌套(单独)到新行中

apache-spark - 如何在 Google Dataproc 主节点上启用 pyspark HIVE 支持

scala - 将 Spark Streaming RDD 推送到 Neo4j -Scala

java - 在 Spark 中使用 Hadoop 作业

python - Spark 簇错误: ClassNotFoundException

python - 合并 Spark 数据框中的日期范围

apache-spark - Spark RDD 的 take(1) 和 first() 的区别

java - 除了使用 Java 在 Spark 中进行计数检查之外,还有哪些方法可以检查 DataFrame 是否为空?

sql - 在 awaitResult 中抛出 SPARK 异常