【发布时间】:2017-05-02 19:59:08
【问题描述】:
我面临以下问题: 我有一个列表,我需要将其与数据框(acc_name)中的列元素进行比较。我正在使用以下循环函数,但它只返回 1 条记录,而它应该为我提供 30 条记录。 使用 Pyspark
bs_list =
['AC_E11','AC_E12','AC_E13','AC_E135','AC_E14','AC_E15','AC_E155','AC_E157',
'AC_E16','AC_E163','AC_E165','AC_E17','AC_E175','AC_E180','AC_E185', 'AC_E215','AC_E22','AC_E225','AC_E23','AC_E23112','AC_E235','AC_E245','AC_E258','AC_E25','AC_E26','AC_E265','AC_E27','AC_E275','AC_E31','AC_E39','AC_E29']
for i in bs_list:
bs_acc1 = (acc\
.filter(i == acc.acc_name)
.select(acc.acc_name,acc.acc_description)
)
bs_list 元素是 acc_name 列的子集。我正在尝试创建一个新的 DF,它将具有以下 2 列 acc_name、acc_description。它将仅包含列表 bs_list 中存在的元素值的详细信息 请让我知道我哪里出错了?
【问题讨论】:
-
您正在尝试为列表中的元素迭代 RDD。而是尝试使用 RDD 中的每个元素迭代列表。
标签: python python-2.7 pyspark ipython pyspark-sql