如何将此 pyspark 二进制列转换为字符串?
How to convert this pyspark binary column to string?
我有以下 Pyspark 数据框:
df = spark.sql("select unhex('0A54C9E024AA62F9EF8BE39231782F9240B51CFB82D1CF7586F734EE07B51086') as db_key")
如您所见,它只有一列“db_key”,只有一个值:对该标记 0A54C9E024AA62F9EF8BE39231782F9240B51CFB82D1CF7586F734EE07B51086
执行操作 unhex
的结果。如果我在前一个数据帧上执行 display
,我会得到以下结果:
display(df)
但是如果我执行 show()
我会得到这个结果:
df.show()
我想获得与 display
相同的字符串,但使用 show()
。我试过这样转换,但结果不是我想要的:
df = spark.sql("select cast(unhex('0A54C9E024AA62F9EF8BE39231782F9240B51CFB82D1CF7586F734EE07B51086') AS STRING) as db_key")
df.show()
我能做什么?
当你在末尾看到一个=
(等号)时,它可能与base64相关。
幸运的是,在 Spark 中有一个内置函数 base64
:
from pyspark.sql import functions as F
df.withColumn("db_key_str", F.base64(F.col("db_key"))).show()
+--------------------+--------------------+
| db_key| db_key_str|
+--------------------+--------------------+
|[0A 54 C9 E0 24 A...|ClTJ4CSqYvnvi+OSM...|
+--------------------+--------------------+
我有以下 Pyspark 数据框:
df = spark.sql("select unhex('0A54C9E024AA62F9EF8BE39231782F9240B51CFB82D1CF7586F734EE07B51086') as db_key")
如您所见,它只有一列“db_key”,只有一个值:对该标记 0A54C9E024AA62F9EF8BE39231782F9240B51CFB82D1CF7586F734EE07B51086
执行操作 unhex
的结果。如果我在前一个数据帧上执行 display
,我会得到以下结果:
display(df)
但是如果我执行 show()
我会得到这个结果:
df.show()
我想获得与 display
相同的字符串,但使用 show()
。我试过这样转换,但结果不是我想要的:
df = spark.sql("select cast(unhex('0A54C9E024AA62F9EF8BE39231782F9240B51CFB82D1CF7586F734EE07B51086') AS STRING) as db_key")
df.show()
我能做什么?
当你在末尾看到一个=
(等号)时,它可能与base64相关。
幸运的是,在 Spark 中有一个内置函数 base64
:
from pyspark.sql import functions as F
df.withColumn("db_key_str", F.base64(F.col("db_key"))).show()
+--------------------+--------------------+
| db_key| db_key_str|
+--------------------+--------------------+
|[0A 54 C9 E0 24 A...|ClTJ4CSqYvnvi+OSM...|
+--------------------+--------------------+