Преобразование набора данных Spark в RDD приводит к искажению данных

Я использую spark-xml для чтения следующих данных:

val ds = spark.read
  .format("com.databricks.spark.xml")
  .option("rowTag", "some_tag")
  .load(xmlPath)
  .select("field1", "field2", "field3")
  .as[SomeCaseClass]

На первый взгляд все работает отлично; когда я бегу

ds.take(20).foreach(println)

Я вижу данные, которые я ожидаю (куча строк). Но что-то не так под капотом; когда я смотрю на основной СДР:

ds.rdd.take(20).foreach(println)

одно из полей искажено в странный список чисел, таких как

[0,2000000045,45,6800000008,6f67657461437b7b,a7d7d434f547972,67657461435b5b0a,69636f533a79726f,5b5b0a5d5d797465,79726f6765746143,6c6f6e686365543a,69636f537c79676f,5d5d797465,6576726573657270]

Некоторые из них выглядят как шестнадцатеричные, но кроме этого я понятия не имею, что с этим делать. Насколько я понимаю, что Dataset а также Dataframe объекты - это просто обертки вокруг СДР, поэтому, даже если никто не знает, что делать с моей конкретной проблемой, я бы согласился объяснить, как Dataset может работать нормально, даже если основной RDD искажен.

0 ответов

Другие вопросы по тегам