У меня проблемы с использованием Spark 2.3.1 и PySpark.
Firstable Я пытался выполнить все множество различных операций, таких как объединение и выбор столбцов, и в конце собирать их или сохранять в CSV-файл, но из-за меня возникла ошибка Py4JJavaError.
Моя первая ошибка:
Py4JJavaError: An error occurred while calling o482.showString.
: org.apache.spark.SparkException: Exception thrown in awaitResult:
at org.apache.spark.util.ThreadUtils$.awaitResult(ThreadUtils.scala:205)
РЕДАКТИРОВАТЬ полный стек ошибок http://textuploader.com/d21se
Я пытался увеличить broadcastTimeout в соответствии с https://community.hortonworks.com/content/supportkb/150263/orgapachesparksparkexception-exception-thrown-in-a.html
но он все еще не работает.
Итак, я попробовал меньшую операцию, например, соединение. У меня есть два DataFrame, около 50 МБ каждый. Я пытался присоединиться, как:
l.join(r, l["ir"] == r["ir"], how="outer").show()
Когда l и r - мой DataFrame, а ir - ключ.
Я все еще получаю сообщение об ошибке типа
Py4JJavaError: An error occurred while calling o3584.showString.
: java.lang.IllegalArgumentException
Я не совсем уверен, что делать и откуда возникла проблема. Если кто-нибудь может помочь!
РЕДАКТИРОВАТЬ : После дальнейших исследований возникает проблема с количеством столбцов в общем, когда я выполняю соединение. Я пытался сделать это:
l = l.selectExpr(*list(np.unique(l.columns[:-7] + ["ir"])))
l.join(r, l["ir"] == r["ir"], how="outer").show()`
и
l = l.selectExpr(*list(np.unique(l.columns[-7:] + ["ir"])))
l.join(r, l["ir"] == r["ir"], how="outer").show()
Оба работали, для людей, которые не знакомы с Python, я просто выбрал подвыборку в первом выражении из столбца от 0 до -7 (-7 означает 7 до конца) + ключ и во втором выражении из столбца от -7 до конец
Обе работы означают, что в объединение могут входить все столбцы, и это не pb с данными, а с номером столбца. Я думаю, что это может быть pb, но не уверен.