#apache-spark #pyspark
#apache-spark #pyspark
Вопрос:
Я хотел добавить новый столбец, который представляет собой объединение двух существующих столбцов, и я использую следующий запрос: В чем проблема с этим запросом? Я вижу «null» для новых столбцов
df.select(df['DEST_COUNTRY_NAME'],df['ORIGIN_COUNTRY_NAME']).withColumn("COMPLETE_PATH",df['DEST_COUNTRY_NAME'] ",").filter(df['DEST_COUNTRY_NAME']=='Egypt').show()
----------------- ------------------- -------------
|DEST_COUNTRY_NAME|ORIGIN_COUNTRY_NAME|COMPLETE_PATH|
----------------- ------------------- -------------
| Egypt| United States| null|
| Egypt| United States| null|
| Egypt| United States| null|
| Egypt| United States| null|
| Egypt| United States| null|
| Egypt| United States| null|
----------------- ------------------- -------------
Комментарии:
1. spark.apache.org/docs/2.3.4/api/python/…
2. Есть ли причина, по которой эти функции необходимо использовать, а не обычные функции python?
3. ДА. вы работаете с фреймом данных spark, а не с фреймом данных pandas. таким образом, ваш фрейм данных обрабатывается spark, который использует язык scala, который использует JVM … итак, если вы хотите использовать простые функции / синтаксис python, вам нужно создать UDF.
Ответ №1:
Попробуйте:
import org.apache.spark.sql.functions.concat
...
df.withColumn(concat(col("DEST_COUNTRY_NAME"), lit(",")))