gpt4 book ai didi

python - 属性错误 :split on spark sql python using lambda

转载 作者:太空宇宙 更新时间:2023-11-04 00:43:57 25 4
gpt4 key购买 nike

在 Spark SQL 中,我使用的是 Python,我正在尝试处理以下 sql 的输出 RDD。这是一个推文列表。我需要拆分单词并提取 @ 但是当使用 map 并尝试按空格拆分时,我收到下面提到的异常消息

words.tw = sqlContext.sql("SELECT text  FROM tweet where text like '%@%'")
tweetrdd = tw.rdd.map(lambda line: line.split(" "))
tweetrdd.collect()


ERROR executor.Executor: Exception in task 0.0 in stage 84.0 (TID 310)
org.apache.spark.api.python.PythonException: Traceback (most recent call last):
File "/usr/lib/spark/python/lib/pyspark.zip/pyspark/worker.py", line 111, in main
process()
File "/usr/lib/spark/python/lib/pyspark.zip/pyspark/worker.py", line 106, in process
serializer.dump_stream(func(split_index, iterator), outfile)
File "/usr/lib/spark/python/lib/pyspark.zip/pyspark/serializers.py", line 263, in dump_stream
vs = list(itertools.islice(iterator, batch))
File "<stdin>", line 1, in <lambda>
File "/usr/lib/spark/python/lib/pyspark.zip/pyspark/sql/types.py", line 1272, in __getattr__
raise AttributeError(item)
**AttributeError: split**

最佳答案

当您从 DataFrame 获取 rdd 时,它会给出 RDD[Row] 因此您不能拆分行,您需要做的是从行中提取字符串,然后执行拆分。

你可以这样做:

words.tw = sqlContext.sql("SELECT text  FROM tweet where text like '%@%')
tweetrdd = tw.rdd.map(lambda line: line.text.split(" "))
tweetrdd.collect()

P.S:我是 Scala 专家,因此语法可能有误。但是您可以了解我正在尝试做什么。

关于python - 属性错误 :split on spark sql python using lambda,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40653567/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com