Как читать десятичный логический тип в спрей данных - PullRequest
0 голосов
/ 16 ноября 2018

У меня есть файл Avro, содержащий десятичный логический тип, как показано ниже:

"type":["null",{"type":"bytes","logicalType":"decimal","precision":19,"scale":2}]


когда я пытаюсь прочитать файл с помощью библиотеки scala spark, схема df будет

MyField: binary (nullable = true)


Как я могу преобразовать его в десятичный тип?

1 Ответ

0 голосов
/ 16 ноября 2018

Вы можете указать схему в операции чтения:

val schema = new StructType()
    .add(StructField("MyField", BooleanType))

или вы можете разыграть колонку

val binToInt: String => Integer = Integer.ParseInt(_, 2);
val binToIntegerUdf = udf(binToInt);

df.withColumn("Myfield", binToIntegerUdf(col("MyField").cast("string")))
...