Pyspark: не удалось выполнить пользовательскую функцию ($ anonfun $ 1: (double) => double) - PullRequest
0 голосов
/ 10 мая 2019

У меня есть столбец, который я преобразовываю в удвоение из строки, но я получаю ошибку ниже.

An error occurred while calling o2564.showString.
: org.apache.spark.SparkException: Job aborted due to stage failure: Task 0 in stage 619.0 failed 4 times, most recent failure: Lost task 0.3 in stage 619.0  org.apache.spark.SparkException: Failed to execute user defined function($anonfun$1: (double) => double)

train_with_summary.select('cd_val').show(10)
+-------------------+
|       cd_val      |
+-------------------+
|                  1|
|                  9|
|                  9|
|                  0|
|                  1|
|                  3|
|                  3|
|                  0|
|                  1|
|                  2|
+-------------------+

bucket_cols = ['cd_val']
for bucket_col in bucket_cols:
    train_with_summary = train_with_summary.withColumn(bucket_col,train_with_summary[bucket_col].cast(DoubleType()))
    bucketizer = Bucketizer(splits=[-float("inf"),4,9,14,19],inputCol=bucket_col,outputCol=bucket_col+"_buckets")
    train_with_summary = bucketizer.setHandleInvalid("keep").transform(train_with_summary)
    print(bucket_col)

print(train_with_summary.select([bucket_col,bucket_col+'_buckets']).show(10)) 

Ошибка была в последней строке, и в столбце не было нулевых значений

1 Ответ

0 голосов
/ 10 мая 2019

Сам разобрался, ошибка в том, что он пытается преобразовать из типа double в тип double.

Так как я запускал код дважды, начальный запуск преобразовал столбец.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...