Прошу прощения за мое невежество, так как я новичок в pyspark и Spark.Я работаю над обновлением Spark с 1.6.3 до 2.1 и сталкиваюсь с проблемами при запуске нашей модели с использованием pyspark.
Все, что мы делаем при запуске скрипта python, который выдает ошибку, мы читаем в JSON ипреобразовать его в DF, используя что-то вроде ниже
df_read = sparkSession.read.json('path to json file')
. После прочтения этого чтения мы выполняем некоторые операции над DF, запускаем некоторые UDF для столбцов и затем, в конечном счете, хотим записать обратно в JSON, который затем будетподобраны и записаны в таблицы Apache Phoenix.
Мы получаем следующее исключение при попытке выполнить любое терминальное действие на DF, например show()
или take()
или любое подобное.
Я прочитал (https://issues.apache.org/jira/browse/SPARK-18016?focusedCommentId=16348980&page=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#comment-16348980) здесь, что проблема в том, что спарк не может работать с суперширокими столбцами, и эта проблема исправлена в версии 2.3.
У нас в DF около 450 столбцов, которые мыхотят написать.
Мой вопрос так как мы не можем перейти на Spark 2.3 в настоящее время, есть ли способ обойти эту штуку?p столбцы в 2 DF, а затем объединить их и написать или что-то в этом роде?
18/12/03 12:34:30 WARN TaskSetManager: Lost task 0.0 in stage 1.0 (TID 1, xhadoopm686p.aetna.com, executor 1): java.util.concurrent.ExecutionException: java.lang.Exception: failed to compile: org.codehaus.janino.JaninoRuntimeException: Constant pool for class org.apache.spark.sql.catalyst.expressions.GeneratedClass$SpecificUnsafeProjection has grown past JVM limit of 0xFFFF
После вышеприведенного исключения он печатает некоторый сгенерированный код, и задание не выполняется.
Любая информацияочень ценится.