在 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
在 Spark Scala 中将 RDD[(String, String, String)] 转换为 RDD[(String, (String, String))]