Присвоение одинакового значения всем элементам столбца Pyspark с помощью withColumn

#python #dataframe #pyspark #jupyter-notebook

#python #фрейм данных #pyspark #jupyter-ноутбук

Вопрос:

Вот мой код :

 for s, sub_direct in enumerate(os.listdir(path_csv1)):  
    for i, file in enumerate (glob.glob(path_csv1 "/" sub_direct "/*.csv")):
        df_spa = spark.read.csv(file,header=True,sep=",")
        df_spa = df_spa.withColumn("Batt_id", sub_direct)
        #df=df.append(df_spa)
        df = df.union(df_spa)
  

На основе значения sub_direct я обновлю свой столбец df_spa ['Batt_id']

Я получил следующую ошибку, и я не мог понять, как ее решить

Я знаю, что это ожидает столбец, но здесь мне нужно присвоить одну и ту же строку всем значениям столбца с папкой

Возможно ли это? lit не работает для меня

Ответ №1:

использовать lit() при передаче переменной

from pyspark.sql import functions as F

df_spa = df_spa.withColumn("Batt_id", F.lit(sub_direct))