【发布时间】:2019-02-28 11:54:05
【问题描述】:
我的 parquet 文件源自 CSV,其中一些单元格被转义。例如:这是一个值
"a , ""Hello"" c"
我希望 Parquet 将其读取为
a , "Hello" c
我试图在阅读时从镶木地板文件中转义引号。 如果我正在阅读 CSV,我可以通过以下方式进行操作
df = spark.read.option('quote', '"').
option('escape', '"').csv("./temp.csv")
但是,对于镶木地板文件,我们没有类似的东西。我已经阅读了使用选项和不使用选项的镶木地板
>>> dfP = spark.read.parquet("./temp.parquet")
>>> dfP.show()
+---+---+---+----------------+---+
|_c0|_c1|_c2| _c3|_c4|
+---+---+---+----------------+---+
| A| B| C| D| E|
| 1| 2|3,4|"a, ""HEllo"" c"| 5|
+---+---+---+----------------+---+
>>> dfP = spark.read.option('quote', '"').
option('escape', '"').parquet("./temp.parquet")
>>> dfP.show()
+---+---+---+----------------+---+
|_c0|_c1|_c2| _c3|_c4|
+---+---+---+----------------+---+
| A| B| C| D| E|
| 1| 2|3,4|"a, ""HEllo"" c"| 5|
+---+---+---+----------------+---+
我希望将 D 列读取为 'a, "Hello" c'。 有什么办法让它工作吗?
输入 parquet 是从 CSV 文件转换而来的
A,B,C,D,E
1,2,"3,4","a, ""HEllo"" c",5
编辑:Parquet 已经生成。我无法改变拼花地板的生成方式。我必须使用我得到的镶木地板并尝试逃跑。
【问题讨论】:
-
如何从 CSV 创建镶木地板文件?使用 spark-csv 读取为 csv 并写入为 parquet?
-
你在做这个吗? spark.read.option("quote", "\"").option("escape", "\"").csv("data.csv").write.parquet("temp.parquet")。这对我有用
-
Parquet 已经由其他人生成。我无法更改镶木地板格式。我刚刚提到它是为了提供更多信息
标签: apache-spark pyspark parquet