Apache spark pyspark将数据添加到一个诱人的

Apache spark pyspark将数据添加到一个诱人的,apache-spark,pyspark,apache-spark-sql,spark-dataframe,Apache Spark,Pyspark,Apache Spark Sql,Spark Dataframe,我已经从数据帧创建了一个临时表 df1 = sqlContext.createDataFrame([(146,000000)],['id','size']) df1.registerTempTable("table_test") 现在,我想在现有的数据框中添加一个新的数据框 df2 = sqlContext.createDataFrame([(147,000001)],['id','size']) 我试着做下面的事情 df2.write.mode("append").saveAsTable(

我已经从数据帧创建了一个临时表

df1 = sqlContext.createDataFrame([(146,000000)],['id','size'])
df1.registerTempTable("table_test")
现在,我想在现有的数据框中添加一个新的数据框

df2 = sqlContext.createDataFrame([(147,000001)],['id','size'])
我试着做下面的事情

df2.write.mode("append").saveAsTable("table_test")
但后来意识到只有对持久表才能做到这一点


是否可以将新数据添加到现有数据库中。如果是这样,怎么做?

您可以合并两个数据帧并重新注册临时表

df1.union(df2).registerTempTable("table_test")

您可以只合并两个数据帧并重新注册临时表

df1.union(df2).registerTempTable("table_test")

用于spark 2或更高版本的union,用于1.x的unionAll。使用相同的COL套件。

用于spark 2或更高版本的union,用于1.x的unionAll。使用相同的列集合。

“DataFrame”对象没有属性“union”。您建议的解决方案导致了该错误。unionAll(df2).RegisterEmptable(“表测试”)为我工作。谢谢。您收到的错误是不是语法错误:无效令牌?这是因为您的数据格式
(147000001)
,而不是因为我上面的解决方案。不。。我得到了我在之前的评论中提到的错误。我从你的建议中得到了解决办法。无论如何,还是要感谢您。“DataFrame”对象没有属性“union”。您建议的解决方案导致了该错误。unionAll(df2).RegisterEmptable(“表测试”)为我工作。谢谢。您收到的错误是不是语法错误:无效令牌?这是因为您的数据格式
(147000001)
,而不是因为我上面的解决方案。不。。我得到了我在之前的评论中提到的错误。我从你的建议中得到了解决办法。谢谢你。
 df3=df1.union(df2) 
 df3.registerTempTable("table_test")
 hc.sql("select * from table_test").show()

+---+----+
| id|size|
+---+----+
|146|   0|
|147|   1|
+---+----+