首页 > 解决方案 > 如何将以下内容转换为 pyspark 2.4?

问题描述

我无法在 python 3 - spark 2.4 中运行以下代码。请指教。

  AGG_rdd = AGG.select('luid', array(varFreq_list).alias('p')) \
  .rdd.map(lambda r: \
  (r.luid, map(lambda x: min(x, 9999.999), \
  np.dot(map(min, zip(r.p, cap_list_bc.value)), eqn_matrix_bc.value).tolist() 
  ) ))

对不起,我不知道怎么改。我试过这个:

  AGG_rdd = AGG.select('luid', array(varFreq_list).alias('p')) \
    .list(rdd.map(lambda r: \
    (r.luid, list(map(lambda x: min(x, 9999.999), \
    np.dot(list(map(min, zip(r.p, cap_list_bc.value))), 
    eqn_matrix_bc.value)).tolist() ) ))

标签: python-3.xpyspark

解决方案


试试这个,python 2 和 python 3 有点不同。我也遇到了 combineByKey 的问题。

AGG_rdd = AGG.select('luid', array(varFreq_list).alias('p')) \
 .rdd.map(lambda r: \
         (r.luid, [min(x, 9999.999) for x in np.dot(list(map(min, list(zip(r.p, cap_list_bc.value)))), eqn_matrix_bc.value).tolist()] ))

推荐阅读