Я использую клей 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'))