PySpark 拆分为 (Key, Array[Values]) 最佳实践

问题描述 投票:0回答:1

我对 Spark 相当陌生,我有兴趣从一开始就了解什么是最佳实践,但到目前为止找不到类似的查询。我得到了一些(很多)由这样的行组成的数据:

['this is some key; followed, by, some, values',
'this is some other key; followed, by, some, , other, values']

我想分割这些线,这样我就得到了一对看起来像这样的

(key,value)

(this is some key, [followed, by, some, values])
(this is some other key, [followed, by, some, other, values])

最有效或最漂亮的方法是什么? 我尝试使用 UDF:

def key_value_pair(line):
    
    if not line:
        return
    split_line = line.split(';')
    k, v = split_line[0], split_line[1]
    return (k, [v])

加上

rdd.map(lambda x: key_value_pair(x))

给了我正确的结果,但我读到应该避免在 Spark 中使用 UDF。

apache-spark pyspark rdd
1个回答
1
投票

这不是 UDF。您正在使用带有映射和 lambda 函数的 RDD。 UDF 用于 pyspark 的数据帧。

也就是说,你有什么就好。

© www.soinside.com 2019 - 2024. All rights reserved.