0

我想在databricks的sql表中创建一个新列,我怀疑使用“创建或替换临时视图”是否比alter table更有效,但是alter table不起作用,有没有人知道其他使用sql的解决方案?我知道这在 pyspark 中也是可能的,但我有很多条件,使用这种语言有点困惑,我考虑过 UDF,但我知道它效率不高。如果有人知道一个有效的,请贡献!我会很感激。

df = spark.createDataFrame([(1,1),(2,2),(3,3)],['id','value'])
df.registerTempTable('sql_df')
df.show()

+---+-----+
| id|value|
+---+-----+
|  1|    1|
|  2|    2|
|  3|    3|
+---+-----+

我可以做什么

%sql
create or replace temp view sql_df as
SELECT *,
    CASE WHEN id = 1 
         THEN "OneOrMA"
         ELSE "A"
    END AS IdRedu
FROM sql_df

+---+-----+-------+
| id|value| IdRedu|
+---+-----+-------+
|  1|    1|OneOrMA|
|  2|    2|      A|
|  3|    3|      A|
+---+-----+-------+

我需要一个不需要替换 sql databricks 中的所有表的解决方案。谢谢

4

0 回答 0