【问题标题】:How to convert hex string to hex bytes format in PySpark如何在 PySpark 中将十六进制字符串转换为十六进制字节格式
【发布时间】:2021-05-19 22:31:19
【问题描述】:

我目前正在将 SQL 管道转换为 PySpark,但在将 SQL 的 from_hex 函数转换为 Pyspark 时遇到了一些困难。我看到一些解决方案涉及将字符串转换为 int,然后转换为十六进制字节,但这似乎效率很低。有没有一种有效的方法将十六进制字符串的列转换为十六进制字节?

为了上下文,我需要加入另一个已经是字节格式的表:

on i.joining_column = from_hex(a.joining_column)

其中 i 已经是十六进制字节格式,而 a 是一个字符串。

任何帮助将不胜感激!

我确实看到了this,它是关于将字符串转换为整数的,但不确定这对我的情况是否有用。

【问题讨论】:

    标签: python sql apache-spark pyspark hex


    【解决方案1】:

    你可以使用bultin函数unhex

    spark.sql("select hex('hex test') as hexa").show(truncate=False)
    #+----------------+
    #|hexa            |
    #+----------------+
    #|6865782074657374|
    #+----------------+
    
    spark.sql("select unhex('6865782074657374') as bytes").show(truncate=False)
    #+-------------------------+
    #|bytes                    |
    #+-------------------------+
    #|[68 65 78 20 74 65 73 74]|
    #+-------------------------+
    

    DataFrame API 中也提供该函数:unhex

    【讨论】:

      猜你喜欢
      • 2017-08-23
      • 2019-07-27
      • 2022-07-08
      • 2014-03-19
      • 2018-01-31
      • 2018-01-22
      • 2013-02-07
      • 1970-01-01
      相关资源
      最近更新 更多