Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Pypark写入CSV报价所有非数字_Csv_Apache Spark_Pyspark_Quote - Fatal编程技术网

Pypark写入CSV报价所有非数字

Pypark写入CSV报价所有非数字,csv,apache-spark,pyspark,quote,Csv,Apache Spark,Pyspark,Quote,当使用df.write.CSV('path')输出到CSV文件时,是否有方法仅引用数据帧中的非数字列 我知道您可以使用选项quoteAll=True引用所有列,但我只想引用字符串列 我正在使用PySpark 2.2.0 我只想引用字符串列 write.csv中目前没有可用于指定要引用的列的参数。但是,一种解决方法是通过在值周围添加引号来修改字符串列 首先通过迭代dtypes string\u cols=[c代表c,如果t==“string”,则在df.dtypes中使用t] 现在,您可以通过添

当使用
df.write.CSV('path')
输出到CSV文件时,是否有方法仅引用数据帧中的非数字列

我知道您可以使用选项
quoteAll=True
引用所有列,但我只想引用字符串列

我正在使用PySpark 2.2.0

我只想引用字符串列

write.csv
中目前没有可用于指定要引用的列的参数。但是,一种解决方法是通过在值周围添加引号来修改字符串列

首先通过迭代
dtypes

string\u cols=[c代表c,如果t==“string”,则在df.dtypes中使用t]
现在,您可以通过添加引号作为前缀和后缀来修改这些列:

从pyspark.sql.functions导入col、lit、concat
cols=[
concat(lit(“”)、col(c)、lit(“”)(如果字符串中的c与else col(c)相同)
对于df列中的c
]
df=df.选择(*cols)
最后写出csv:

df.write.csv('path'))

这是否处理包含双引号(“)字符的原始字符串本身的情况?在这种情况下它将不起作用。有可能的解决方法,但这取决于所需的输出。一个选项是转义字符串列中出现的引号。