如何在Apache Spark SQL中执行更新

时间:2015-02-19 06:26:25

标签: join sql-update apache-spark apache-spark-sql

我必须通过一些JavaSchemaRDD条件更新WHERE一些新值。

这是我要转换为Spark SQL的SQL查询:

UPDATE t1
  SET t1.column1 = '0', t1.column2 = 1, t1.column3 = 1    
  FROM TABLE1 t1
  INNER JOIN TABLE2 t2 ON t1.id_column = t2.id_column     
  WHERE (t2.column1 = 'A') AND (t2.column2 > 0)   

1 个答案:

答案 0 :(得分:1)

是的,我得到了解决方案。我只使用Spark核心实现了这一点,我没有使用过Spark-Sql。我有2个RDD(也可以称为表或数据集)t1和t2。如果我们在问题中观察我的查询,我将根据一个连接条件和两个条件更新t1。意思是我需要来自t2的三列(id_column,column1和column2)。所以我将这些专栏列入了3个单独的集合。然后我在第一个RDD t1上进行迭代,在迭代过程中,我使用java“if”条件添加了这三个条件语句(1个Join和2个条件)。因此,基于“if”条件导致第一个RDD值得到更新。