Как записать в csv файл в pandas UDF в pyspark?

#pandas #pyspark

#pandas #pyspark

Вопрос:

Это код, который я пытался записать в файл CSV. Фрейм данных Spark будет записан в файл CSV с использованием pandas

 from pyspark.sql.functions import pandas_udf,PandasUDFType
import os
import csv

df3 = spark.createDataFrame(
[("a", 1, 0), ("a", -1, 42), ("b", 3, -1), ("b", 10, -2)],
("key", "value1", "value2")
)

from pyspark.sql.types import *

schema = StructType([
    StructField("key", StringType()),
    StructField("avg_value1", DoubleType()),
    StructField("avg_value2", DoubleType()),
    StructField("sum_avg", DoubleType()),
    StructField("sub_avg", DoubleType()),
    StructField("result", StringType())
])

@pandas_udf(schema, PandasUDFType.GROUPED_MAP)
def g(df):
    gr = df['key'].iloc[0]
    x = df.value1.mean()
    y = df.value2.mean()
    w = df.value1.mean()   df.value2.mean()
    z = df.value1.mean() - df.value2.mean()
    
    fileName = '/mnt/test'   gr   '.csv'   
    df.to_csv(fileName, sep='t')  
    a = "Saved"
    return pd.DataFrame([[gr] [x] [y] [w] [z] [a]])

df3.groupby("key").apply(g).show()
  

Вывод:

  --- ---------- ---------- ------- ------- ------ 
|key|avg_value1|avg_value2|sum_avg|sub_avg|result|
 --- ---------- ---------- ------- ------- ------ 
|  a|       0.0|      21.0|   21.0|  -21.0| Saved|
|  b|       6.5|      -1.5|    5.0|    8.0| Saved|
 --- ---------- ---------- ------- ------- ------ 
  

Но файлы CSV не создаются.

Любые предложения будут оценены.

Комментарии:

1. Это работает! Извинения