【问题标题】:Python list of lists// PysparkPython 列表列表// Pyspark
【发布时间】:2020-02-20 02:29:31
【问题描述】:

输入:

[['A', 'V1'], ['A', 'V2'], ['B', 'V6'], ['B', 'V7']]

我怎样才能得到上面输入的下面的输出

预期输出:

listA = ['V1', 'V2'],  listB = ['V6', 'V7']

附加信息:

我正在学习 pyspark 和

[('X', [['A', 'V1'], ['A', 'V2'], ['B', 'V6'], ['B', 'V7']]),
 ('Y', [['A', 'V3'], ['A', 'V4'], ['B', 'V8']])]

是我现在所处的位置。我正在尝试在不使用 join 函数的情况下实现 join。

X 和 Y 是我想要加入的密钥。 A 和 B 是不同的文件源。

我预期的最终输出是:

(X, ['V1', 'V6'])
(X, ['V1', 'V7'])
(X, ['V2', 'V6'])
(X, ['V2', 'V7'])
(Y, ['V3', 'V8'])
(Y, ['V4', 'V8'])

【问题讨论】:

  • 1.关于在 Python 列表或 Pyspark 中实现这个的问题? 2.A和B是不同的源文件是什么意思?在您提供的示例中,它们对我来说是字符串。 3.从预期的输出中,您正在寻找A和B中值的所有组合。 4.“我正在尝试在不使用join函数的情况下实现join”与您的输出不一致,那不是“join” .我真的迷路了!
  • 你在 Pyspark 中实现这个吗?它们似乎是对 RDD 的一些操作.. 无法理解您对连接输出的期望。我迷路了。

标签: python list pyspark bigdata rdd


【解决方案1】:

不是很复杂,但类似这些行的内容可能会对您有所帮助:

list = [['A', 'V1'], ['A', 'V2'], ['B', 'V6'], ['B', 'V7']]

list_a = []
list_b = []
for i in list:
    first, second = i
    if first == 'A':
        list_a.append(second)
    elif first == 'B':
        list_b.append(second)

print("list_a: ", list_a)
print("list_b: ", list_b)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-11-13
    • 2021-11-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-07
    • 2018-11-19
    相关资源
    最近更新 更多