在 Spark 中将简单的单行字符串转换为 RDD

Posted

技术标签:

【中文标题】在 Spark 中将简单的单行字符串转换为 RDD【英文标题】:Convert a simple one line string to RDD in Spark 【发布时间】:2014-11-27 06:04:30 【问题描述】:

我有一条简单的线:

line = "Hello, world"

我想将它转换为只有一个元素的 RDD。 我试过了

sc.parallelize(line)

但它得到:

sc.parallelize(line).collect()
['H', 'e', 'l', 'l', 'o', ',', ' ', 'w', 'o', 'r', 'l', 'd']

有什么想法吗?

【问题讨论】:

【参考方案1】:

尝试使用 List 作为参数:

sc.parallelize(List(line)).collect()

返回

res1: Array[String] = Array(hello,world)

【讨论】:

实际上,使用 sc.parallelize([line]).collect() 有效。 在我的环境中(scala 2.10.3 spark-1.0.0)sc.parallelize([line]).collect() 不起作用 我忘了指明我使用的是python api。 @poiuytrez 你也忘了接受答案!好问题,对双方都 +1! @michaeltang @poiuytrez 这仍然是使用pyspark 3.0.0的方法吗【参考方案2】:

以下代码在 Python 中运行良好

sc.parallelize([line]).collect()
['Hello, world']

这里我们将参数“line”作为列表传递。

【讨论】:

这仍然是使用 pyspark 3.0.0 的方法吗【参考方案3】:

使用以下代码:

sc.parallelize(Seq(line))

【讨论】:

如果您在答案中添加一些解释会更好

以上是关于在 Spark 中将简单的单行字符串转换为 RDD的主要内容,如果未能解决你的问题,请参考以下文章

如何在 ipython 中将 Spark RDD 转换为 pandas 数据帧?

如何在 ipython 中将 Spark RDD 转换为 pandas 数据帧?

如何在 Spark Streaming 中将 RDD 转换为 DataFrame,而不仅仅是 Spark

如何在火花中将rdd对象转换为数据框

在 Spark Scala 中将 RDD[(String, String, String)] 转换为 RDD[(String, (String, String))]

在 Spark 中将元组转换为矩阵