#apache-spark #pyspark #apache-spark-sql #rdd
#apache-spark #pyspark #apache-spark-sql #rdd
Вопрос:
Я новичок в pyspark и нуждаюсь в решении приведенного ниже вопроса.
В массиве [[-1,1,2,4,5],[3,5,6,-6]], удалите элементы, которые равны <=0, и получите квадрат положительных ненулевых чисел.
Комментарии:
1. версия spark??
2. spark версии 3 и использование python 3
Ответ №1:
Используйте transform
функции и filter
функции более высокого порядка.
df.printSchema()
root
|-- ids: array (nullable = true)
| |-- element: array (containsNull = true)
| | |-- element: integer (containsNull = false)
from pyspark.sql import functions as F
df.withColumn("new_ids",F.expr("transform(ids,o -> filter(o, i -> i > 0))")).show()
--------------------------------- -------------------------
|ids |new_ids |
--------------------------------- -------------------------
|[[-1, 1, 2, 4, 5], [3, 5, 6, -6]]|[[1, 2, 4, 5], [3, 5, 6]]|
--------------------------------- -------------------------
Комментарии:
1. любое другое простое решение с использованием карты rdd и фильтров?
2. это очень простое решение