pyspark read.csv一个小坑(转义符居然是")

1.bug描述

下面代码一般可正常读取本地csv文件

from pyspark.sql import SparkSession
spark = SparkSession.builder.getOrCreate()
df = spark.read.csv('my_test.csv', header=True)
print(df)

但是最近用GA数据库时,sql查询数据转成csv后。用上述代码读取文件,居然看到一列内容是下面格式,单引号、双引号、逗号掺杂在一起,导致逗号两端内容给搞到两列中去了,并且后边数据丢失了。
““it‘s an apple, chi le ma””
csv中原数据格式
|title|name|
|"“it‘s an apple, chi le ma”"|apple|
读取到dataframe后,数据如下
|title |name|
|"“it‘s an apple|chi le ma”"|

2.问题原因

为了区分内容中单引号,用双引号包围,逗号又是csv区分列默认符号,并且平常都是用\作为转义符,没见过"做转义符的。这里的"",前一个"其实充当了转义符。还用read.csv默认参数会导致上述情况。

3.解决方法

修改read.csv内参数即可,虽说解决很简单,但是蒙了好久啊

df = spark.read.csv('my_test.csv', header=True, escape='"')
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值