pyspark - конвертировать тестовую строку в float - PullRequest
0 голосов
/ 30 августа 2018

Я использую клей AWS для создания заданий ETL - написание сценариев с использованием Pyspark.

Необработанные данные - это файл avro, который я сканирую с помощью сканера AWS Glue, а затем использую выходную таблицу в качестве цели моего задания Glue ETL. Я заметил, что схема обозначила значение столбца как байты, которые я теперь хочу преобразовать в число с плавающей точкой.

Моя работа создает Pyspark df 'amount'. У него есть такие значения:

dGpSiAA= 
ARdlkuAA 
AOjUpRAA 
RdlkuAA=

Схема avro такая:

{\"name\":\"amount\",\"type\":{\"type\":\"bytes\",\"scale\":8,\"precision\":20,\"connect.version\":1,\"connect.parameters\":{\"scale\":8,\"connect.decimal.precision\":\"20\"},\"connect.name\":\"org.apache.kafka.connect.data.Decimal\",\"logicalType\":\"decimal\"}}

Как я могу преобразовать их в соответствующие значения с плавающей точкой?

Я пытался:

import pyspark.sql.functions as sql_f

duplicates_dropped_df = duplicates_dropped_df.withColumn("amount", sql_f.col("amount").cast('double'))
...