我想在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 中的所有表的解决方案。谢谢