Фильтрация RDD Исходя из условия и извлечения согласованных данных в Spark python

У меня есть такие данные,

cl_id cn_id cn_value 10004, 77173296 ,390.0 10004, 77173299 ,376.0 10004, 77173300 ,0.0 20005, 77173296 ,0.0 20005, 77173299 ,6.0 2005, 77438800 ,2.0 

Идентификаторы Cl_id: 10004, 20005

  • Время икры иглы увеличивается экспоненциально при использовании соединения
  • (PySpark) Вложенные списки после reduceByKey
  • Как добавить постоянный столбец в Spark DataFrame?
  • Создание бинномозговых гистограмм в Spark
  • Как добавить новый столбец в Spark DataFrame (используя PySpark)?
  • Что эквивалентно scala.util.Try в pyspark?
  • Фильтр по 10004

     10004, 77173296 ,390.0 10004, 77173299 ,376.0 

    Фильтр по 20005

     20005, 77173296 ,0.0 20005, 77173299 ,6.0 

    Теперь я хочу вернуть RDD,

     10004,cn_id,x1(77173296.value,77173300.value) ==> 10004,77173296,390.0,376.0 20005,cn_id,x1(77173296.value,77173300.value) ==> 20005,77173296,0.0,6.0 

    И я хочу выполнить некоторую операцию над этим return_RDD :

      def cal_for(rdd_list): #list.map(position1).filter(cn_id for this formula)-> calculate that formula -> store in a separate RDD -> Return that RDD rdd_list = rdd_list.map(lambda line:line.split(',')) new_list = rdd_list.map(lambda x: (x[0]+', '+x[1],float(x[2]))) new_list = rdd_list.filter(lambda x: x[1] == '77173296' && x[1] == '77173299') ## then get the RDD containing respective cn_values for cn_id 77173296 & cn_id 77173299 ## and apply the following formula whre a=77173296.value b=77173299.value for cl_id 1004 try: # want to process RDD with this Formula return ((float(a)/float(a+b))*100) except ZeroDivisionError: return 0 #return or save cal_RDD 

  • Чтение текстового файла и разбиение его на отдельные слова в python
  • Как вы используете subprocess.check_output () в Python?
  • Есть ли библиотека python для синтаксического анализа дат и времени с естественного языка?
  • Элегантный способ выполнения арифметики кортежа
  • Python читает данные Кассандры в пандах
  • Поиск соответствия данных из одного набора данных в другом
  • One Solution collect form web for “Фильтрация RDD Исходя из условия и извлечения согласованных данных в Spark python”

    Вместо того, чтобы дважды фильтровать RDD, модифицировать и рекомбинировать полученные RDD, просто группировать по id, а затем сопоставлять значения для внесения необходимых изменений. Если вы хотите еще больше ограничить результаты на основе некоторых критериев, тогда выполните фильтрацию при отображении.

    Я не могу дать вам более точный ответ:

    a) Не похоже, что вы действительно пытались это реализовать, и б) я не совсем уверен, чего вы хотите.

    Python - лучший язык программирования в мире.