pyspark- python3 _pickle.PicklingError: Не удалось сериализовать объект: TypeError: невозможно выбрать объекты _thread.RLock - PullRequest
0 голосов
/ 10 января 2020
  • Python Версия: 3.6.5

  • Spark: 2.3.0

Тестирование udf, который принимает ввод <class 'pyspark.sql.column.Column'> типа и при его печати он имеет Column<b' with bytecodes ...

udf_call = udf(udf_funct, StringType())
col_columns = [col(c) for c in df.columns]
print(col_columns) 
#has list with bytecodes Column<b' which is not in case of 2.7
udf_call(struct(*col_columns))

ошибка

TypeError: не удается засечь _thread .RLock объекты Во время обработки вышеупомянутого исключения произошло другое исключение: Файл "////SPARK2-2.3.0.-1../lib /spark2/python/pyspark/cloudpickle.py ", строка 918, в файле дампов cp.dump (obj)" ////SPARK2-2.3.0./lib/ spark2 / python / pyspark / cloudpickle.py ", строка 249, в аварийном режиме

1 Ответ

0 голосов
/ 12 февраля 2020
  1. В моем проекте есть подпакеты, а затем подпакет pkg subpckg1 subpkg2 .py
  2. из моего Main.py im, вызывающий UDF, который будет вызывать функцию в файле subpkg2 (.py) 3 . благодаря большему количеству вложенных функций и взаимодействию UDF с множеством других функций, таких как, как работа spark не смогла найти решение для файлов subpkg2

: создайте файл egg из pkg и отправьте через --py- файлы.

...