Я хочу заключить в кавычки только строковые столбцы.
В write.csv
в настоящее время нет параметра, который можно использовать, чтобы указать, какие столбцы следует заключать в кавычки.Однако один из обходных путей - изменить строковые столбцы, добавив кавычки вокруг значений.
Сначала определите строковые столбцы, выполнив итерации по dtypes
string_cols = [c for c, t in df.dtypes if t == "string"]
Теперь вы можете изменять эти столбцыдобавив кавычку в качестве префикса и суффикса:
from pyspark.sql.functions import col, lit, concat
cols = [
concat(lit('"'), col(c), lit('"')) if c in string_cols else col(c)
for c in df.columns
]
df = df.select(*cols)
Наконец, напишите csv:
df.write.csv('path')