Я бы хотел выполнить SQL подобный синтаксис для фрейма данных Spark df
. Допустим, мне нужен расчет
cal_col = 113.4*col1 +41.4*col2....
В данный момент я делаю либо:
1 / Вещание в режиме временного просмотра:
df.createOrReplaceTempView("df_view")
df = spark.sql("select *, 113.4*col1 +41.4*col2... AS cal_col from df_view")
Вопрос: есть ли много накладных расходов, передавая большой df
как вид? Если да, в какой момент это больше не имеет смысла? Допустим, df
имеет 250 столбцов, 15 миллионов записей.
2 / Синтаксис фрейма данных Pyspark, который немного сложнее для чтения и требует модификации из формулы:
df = df.withColumn("cal_col", 113.4*F.col("col1") + 41.4*F.col("col2")+...)
Формула может быть длинным и стать трудным для чтения.
Вопрос: Есть ли способ написать как SQL -подобный синтаксис без F.col
?
Что-то в строке
df = df.select("*, (113.4*col1 +41.4*col2...) as cal_col")