Я пытаюсь использовать spark для загрузки данных из корзины s3 в мой ноутбук emr (который находится на кластере emr под управлением spark 2.4)
У меня создан ноутбук EMR, и он создает sparkSession в качестве sparkи могу назначить
val connections = data.select("col1", "col2").rdd.distinct().flatMap(x =>
Iterable(x(0).asInstanceOf[Number].longValue,
x(1).asInstanceOf[Number].longValue)).distinct().toDF()
Я получаю ответ
подключений: org.apache.spark.sql.DataFrame = [значение: bigint]
, что, как ожидается, однако, когда я тогда запускаю: connections.first()
Я получаю вывод:
org.apache.spark.SparkException: Job aborted due to stage failure: Task 0 in stage 8.0 failed 4 times, most recent failure: Lost task 0.3 in stage 8.0 (TID 55, ip-10-0-251-222.ec2.internal, executor 4): java.lang.ClassCastException: [B cannot be cast to java.lang.Number
(плюс еще около 100 строк, которые он не позволит мне добавить)
Почему я не могу взять первое значение кадра данных, полного bigints?