【问题标题】:How to convert Binary to String in scala glue如何在 scala 胶水中将二进制转换为字符串
【发布时间】:2020-09-24 13:52:19
【问题描述】:
root
|-- person_id_enc: binary
|-- creation_set_id_enc: binary
|-- device_serial_num_enc: binary
|-- device_snapshot_id_enc: binary
|-- device_id_enc: binary

我在 AWS scala 胶水中将 Dataframe 模式作为二进制数据类型,我想将此模式转换为字符串数据类型,如下所示。

预期的数据框:

root
|-- creation_set_id_enc: string
|-- device_serial_num_enc: string
|-- device_snapshot_id_enc: string
|-- device_id_enc: string
val fieldEnc: BinaryNode = rec.getFieldNode(commItm.get(0).toString).get.asInstanceOf[BinaryNode]
                  rec.addField(commItm.get(0).toString, StringNode(BaseEncoding.base64().encode(fieldEnc.value)))

【问题讨论】:

    标签: amazon-web-services scala aws-glue


    【解决方案1】:

    您可以通过在数据框中使用 resolveChoice 方法来解决此问题,如下所示 -

    val extraDroppedDyf_modified  = extraDroppedDyf.resolveChoice(specs = Seq(("creation_set_id_enc", "cast:String"),("device_serial_num_enc", "cast:String"),("device_snapshot_id_enc", "cast:String"),("device_id_enc", "cast:String")))
    
    • 现在您可以打印架构了。这对我有用
      extraDroppedDyf_modified.printSchema()
      
      O/P -- 
      
      root
      |-- creation_set_id_enc: string
      |-- device_serial_num_enc: string
      |-- device_snapshot_id_enc: string
      |-- device_id_enc: string
      

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-09-19
      • 2012-01-06
      • 2014-11-07
      • 2021-02-24
      相关资源
      最近更新 更多