【发布时间】:2017-04-25 21:12:01
【问题描述】:
我正在使用 spark-csv 将数据帧转换为 CSV,然后才能加载到红移表中。 spark-csv 添加了一个反斜杠来转义双引号,这是我所期望的。但是当复制命令尝试加载到redshift时,它会在backsplash中添加一个backsplash。如何预防?
这是一个示例代码:
df= sqlContext.createDataFrame([("1A", 123456, "first example"), ("1B", 123457, "It's a \"problem\"")], ['id', 'time', 'xstr'])
+---+------+----------------+
| id| time| xstr|
+---+------+----------------+
| 1A|123456| first example|
| 1B|123457|It's a "problem"|
+---+------+----------------+
df.coalesce(1).write.format("com.databricks.spark.csv").option("header", "false")\
.option("quoteMode", "NON_NUMERIC")\
.save(fname)
RS 复制命令: COPY xxxx FROM YYYY 分隔符 ',' FORMAT CSV
它出错并且 STL_LOAD_ERRORS 表包含以下内容:
1B,123457,"It's a \\"problem\\""
如何防止 redshift 转义转义字符?
【问题讨论】:
-
顺便说一句,您可能还想使用
REMOVEQUOTES将文本字符串的外引号去掉。 -
好收获。谢谢。
标签: csv apache-spark amazon-redshift