如何在使用转义或引号在pyspark中的文件中写入数据帧时获得完全匹配? [复制]

Posted

技术标签:

【中文标题】如何在使用转义或引号在pyspark中的文件中写入数据帧时获得完全匹配? [复制]【英文标题】:How to get exact match while writing dataframe in file in pyspark using escape or quote? [duplicate] 【发布时间】:2020-07-13 03:53:17 【问题描述】:

我正在尝试将数据框加载到文件中,但无法获得完全匹配。你能帮我解决这个问题吗?

example:

"From...............\"dawood\"...........\"oral use\"........"

but i am getting:

"From................\"dawood\"...........\\"oral use\\\"......"

i am using below code to write the dataframe:
df.repartition(1).write.format('com.databricks.spark.csv').mode('overwrite').save(output_path,quote='"', sep='|',header='True',nullValue=None)

您能帮我如何获得所有记录的完全匹配吗?

【问题讨论】:

你的问题很混乱,能否请你澄清一下你的意思,不要将所有这些都标记为代码,因为它不是 @mvr950,这个问题没有问(并且它的答案没有显示)如何传递参数,这是 OP 不知道该怎么做的部分;现有的链接副本更好。 顺便说一句,最好不要对可执行脚本使用文件扩展名。只需关闭扩展名,然后使用 shebang 选择正确的解释器。请参阅文章 Commandname Extensions Considered Harmful,或者如果您想要更权威的来源,请参阅 wooledge.org/~greybot/meta/.sh 上 irc.freenode.org #bash 支持频道的 factoid 数据库历史条目。 第一个 Python 文件 test.py import sys data = sys.argv[1] 打印数据然后 bash 文件 pss.sh #!/bin/bash python test.py "$@" 【参考方案1】:

要么将其复制到您的 shell 脚本中:

python imed_consump.py 'Smart Source'

但是你的参数总是固定的。如果这不是我们所希望的,那么在 shell 内执行以下操作

python imed_consump.py "$1"

然后像这样执行你的shell:

bash imed_consump.sh 'Smart Source'

【讨论】:

需要"$1",而不是裸$1。否则 $1 (或者,在 Python 中,sys.argv[1])将是 Smart$2 / sys.argv[2] 在内部脚本中将是 Source ,而不是将该参数作为一个单词保持在一起。跨度> 也就是说,请注意How to Answer 的“回答好问题”部分;已经“被多次询问和回答”的问题应该被关闭,而不是回答。 感谢@CharlesDuffy,是的,我是回答问题的新人。

以上是关于如何在使用转义或引号在pyspark中的文件中写入数据帧时获得完全匹配? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 C# 转义 XPath 引号“”

linux就该这么学-第4章 写入转义单引号别名全局变量

将字符串写入 CSV 时转义逗号

CMD命令中的参数带有双引号,如何转义双引号?

如何在 PySpark 中使用 foreach 或 foreachBatch 写入数据库?

使用 Pyspark 在 s3 中写入镶木地板文件时出错