【发布时间】:2019-02-23 08:57:52
【问题描述】:
我有一个包含两列的火花框架,如下所示:
+-------------------------------------------------------------+------------------------------------+
|docId |id |
+-------------------------------------------------------------+------------------------------------+
|DYSDG6-RTB-91d663dd-949e-45da-94dd-e604b6050cb5-1537142434000|91d663dd-949e-45da-94dd-e604b6050cb5|
|VAVLS7-RTB-8e2c1917-0d6b-419b-a59e-cd4acc255bb7-1537142445000|8e2c1917-0d6b-419b-a59e-cd4acc255bb7|
|VAVLS7-RTB-c818dcde-7a68-4c1e-9cc4-c841660732d2-1537146854000|c818dcde-7a68-4c1e-9cc4-c841660732d2|
|IW2BYL-RTB-E9727F7D-D1BA-479C-9D3A-931F87E78B0A-1537146572000|E9727F7D-D1BA-479C-9D3A-931F87E78B0A|
|DYSDG6-RTB-f50f79e9-3ec3-4bd8-8e53-f62c3f80bcb0-1537146220000|f50f79e9-3ec3-4bd8-8e53-f62c3f80bcb0|
+-------------------------------------------------------------+------------------------------------+
我有一个将 id 列转换为 85 位编码字符串的函数:
def convert_id(id):
import base64 as bs
id_str = str(id).replace("-", "")
return str(bs.a85encode(bytearray.fromhex(id_str)))[2:-1]
我想使用据报道比普通 udf 更快的 pandas udf 对其进行转换。
我怎样才能做到这一点? TIA。
【问题讨论】:
-
udf 定义是一样的,假设输入和输出将被指定为一个熊猫系列的字符串
标签: python python-3.x pandas pyspark user-defined-functions