如何在 pyspark 中查找不合规的行
Posted
技术标签:
【中文标题】如何在 pyspark 中查找不合规的行【英文标题】:How to find non compliant rows in pyspark 【发布时间】:2020-07-15 16:22:57 【问题描述】:我正在尝试查找和隔离某些列不遵循某些模式的行。我从 databricks 文档中找到了以下示例,用于识别和检查列值是否为整数,并将不良记录写入 json 文件。
我想确定一列值是否像 1,245.00 和坏记录是否像 1.245,00。 这些值可以改变位数,只是想检查数据是否遵循 pyspark 中的 1,245.00 之类的模式。
有时在原始数据中,逗号和点会互换。
谁能告诉我如何在 badrecordpath 中收集此类记录,如下例所示?
// Creates a json file containing both parsable and corrupted records
Seq(""""a": 1, "b": 2""", """bad-record""").toDF().write.text("/tmp/input/jsonFile")
val df = spark.read
.option("badRecordsPath", "/tmp/badRecordsPath")
.schema("a int, b int")
.json("/tmp/input/jsonFile")
df.show()
上面的例子在 scala 中,如果可能的话,我正在寻找 pyspark 解决方案。谢谢。
【问题讨论】:
您能发布一些示例输入数据和预期输出吗? 【参考方案1】:请在下面找到一些示例(最后两位小数)
1,245.00
3,5000.80
6.700,00
5.7364732.20
4,500,600.00
具有以下数据的数据框(符合规定)应具有点和两位小数
1,245.00
3,5000.80
4,500,600.00
badRecordsPath(小数点前的逗号)中应保留非法数据点
6.700,00
5.7364732,20
谢谢
【讨论】:
以上是关于如何在 pyspark 中查找不合规的行的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 pyspark 2.1.0 选择另一个数据框中不存在的行?
如何转换由 | 分隔的顺序数据并且在 pyspark 中的行和列中没有换行符