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|
+---+----+