Мне нужно загрузить CSV-файл, имеющий столбец с массивом структур, и выгрузить его в другое место в формате паркета. В моем файле csv есть два столбца, столбцы A и B. Тип данных столбца B: array<struct<x: bigint, y:bigint>>
. Я попытался загрузить файл csv со следующей схемой:
val schemaB = ArrayType(StructType(Seq(StructField("x",LongType),StructField("y",LongType))))
val schema = new StructType().add("A",StringType).add("B",schemaB)
spark.read.option("sep", "\t").schema(schema).csv(<location>)
Однако это не сработало. Я получил следующую ошибку:
org.apache.spark.sql.AnalysisException: CSV data source does not support array<struct<x:bigint,y:bigint>> data type.;</struct<x:bigint,y:bigint>
Я даже пытался привести к требуемому типу, но это не сработало.
Это пример того, как выглядит столбец B:
|B |
+---------------------------------------------------------------------------------------------+
|68222:102332,21215:1000,10982:70330,|
|93302:13320,263721:902615,9382:100020,|