Я применяю функцию к Spark RDD, например:
data_2 = sqlContext.createDataFrame(pandas_df,data_schema)
data_3 = data_2.rdd.map(lambda x: parallelized_func(x, **args*)).collect()
Теперь функция parallelized_fun c выглядит примерно так:
def parallelized_func(a,b,c):
####FUNCTION BODY#####
print("unique identifier for each row in pandas_df")
return {'df1':df1,'df2':df2}
Проблема Я столкнулся с этим: когда я запускаю оператор "data_3 = ..." выше в записной книжке Databricks, я хочу, чтобы уникальный идентификатор, который я печатаю внутри parallelized_fun c, отображался где-то, на некоторых console, потому что это упростило бы отладку при возникновении проблемы с любой строкой в фрейме данных pandas_df.
Я попытался проверить консоли std_out и std_err для каждого исполнителя, выполняющего задания, но всегда есть целая загрузка других операторов, которые занимают большую часть консоли (все операторы Spark, связанные с различными выполняемыми задачами, я полагаю ). Иногда я могу найти свой оператор печати в этом огромном море других операторов, но это действительно неэффективный и неэффективный способ отладки.
Есть ли лучший способ go печати такого оператора? Или лучший способ его найти? Могу ли я, например, подавить все другие операторы, связанные с выполнением, которые Spark постоянно выводит на консоль?
Присоединение снимка других операторов, которые печатаются на консоли.