我们如何在Pyspark中编写一个UDF,以解析复杂列数据

发布于 2025-02-04 00:13:54 字数 272 浏览 2 评论 0原文

我有列值的形式 {“ 1”:“ MediaMaAadadeFtch || Oaisaoid | true | modsversio | 67900 | 67900 | clk | true | ppooos | 202201010164113 | 34958 | 34958 | 38177557 ..}

这不是json格式,有些值是管道分离的,有些值是双管间隔的,我们如何编写一个打破此值并转换为多列的

UDF 1 | MediaMaAadadeftch | oaisaoid | true | ..

I have column values which is of the form of
{"1":"mediaMaaadadeftch||OAISAOID|true|ModsVersio|67900|clk|true|PPOOOS|20220501164113|34958|38177557..}

This is not a json format, some values are pipe separated and some are double pipe separated, how can we write a udf which breaks this value and convert into multiple columns.

col_1|col_2|col_3|col_4|..
1|mediaMaaadadeftch|OAISAOID|true| ..

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

姐不稀罕 2025-02-11 00:13:54

您可以通过CSV文件

将数据存储在CSV文件中,

>>> df1 = spark.read.load("/path_to/sample.csv",format="csv", sep="|")
>>> df1.show()
+--------------------+----+--------+----+----------+-----+---+----+------+--------------+-----+--------+
|                 _c0| _c1|     _c2| _c3|       _c4|  _c5|_c6| _c7|   _c8|           _c9| _c10|    _c11|
+--------------------+----+--------+----+----------+-----+---+----+------+--------------+-----+--------+
|"1":"mediaMaaadad...|null|OAISAOID|true|ModsVersio|67900|clk|true|PPOOOS|20220501164113|34958|38177557|
+--------------------+----+--------+----+----------+-----+---+----+------+--------------+-----+--------+

而不是编写UDF,而是用双管“ ||”加载列。将是无效的,因此,如果您不需要这些列,则可以删除它们

instead of writing udf , you can do it by csv file

store the data in a csv file and load it

>>> df1 = spark.read.load("/path_to/sample.csv",format="csv", sep="|")
>>> df1.show()
+--------------------+----+--------+----+----------+-----+---+----+------+--------------+-----+--------+
|                 _c0| _c1|     _c2| _c3|       _c4|  _c5|_c6| _c7|   _c8|           _c9| _c10|    _c11|
+--------------------+----+--------+----+----------+-----+---+----+------+--------------+-----+--------+
|"1":"mediaMaaadad...|null|OAISAOID|true|ModsVersio|67900|clk|true|PPOOOS|20220501164113|34958|38177557|
+--------------------+----+--------+----+----------+-----+---+----+------+--------------+-----+--------+

columns with double pipe "||" will be null , so if you don't need those columns you can remove them

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文