Ошибка при присоединении к DataFrame в PySpark 2 - PullRequest
0 голосов
/ 27 августа 2018

У меня проблемы с использованием 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, но не уверен.

1 Ответ

0 голосов
/ 28 августа 2018

Я решаю проблему путем понижения до Java 1.8 .... Моя версия Java была 1.10

...