5

我必须通过一些条件来更新 aJavaSchemaRDD一些新值。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)   
4

1 回答 1

1

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

于 2015-05-26T12:59:04.677 回答