将rdd行转换为一列

Posted

技术标签:

【中文标题】将rdd行转换为一列【英文标题】:Convert rdd rows into one columns 【发布时间】:2018-03-16 07:19:04 【问题描述】:

我正在尝试将所有值从行中获取到列中。我没有索引,所以很难将所有内容都放在一个列中。

代码:获取值

traceFilters = sqlContext.read.format("csv").options(header='true', delimiter = ',').load("/data/*.txt")

traceFilters.take(5)
fields = [
 StructField("City", StringType(), False),
 StructField("Country", StringType(), False)
]

traceFilters.track(5)

for row in traceFilters.rdd.collect():
    a =  row.City
    print a

这是我从上面的代码中得到的数据:

New York
London
Vienna

以及我想要的结果。

[ New York, London, Vienna ]

我尝试使用transpose,但它无法正常工作,并且还与zip 一起使用。 我试过的代码:

print a.transpose()

val1= a.set_index('City').T

任何帮助表示赞赏。

谢谢

【问题讨论】:

请发布您尝试过的特定代码,以便其他人提出建议。这个问题太模糊了。 @Brian 嗨,我添加了代码。 【参考方案1】:

看起来您只是在打印每个值,但您确实想要一个列表。这会将每个值附加到一个列表中,然后将其打印出来:

traceFilters = sqlContext.read.format("csv").options(header='true', delimiter = ',').load("/data/*.txt")

traceFilters.take(5)
fields = [
 StructField("City", StringType(), False),
 StructField("Country", StringType(), False)
]

traceFilters.track(5)

a = []
for row in traceFilters.rdd.collect():
    a.append(row.City)
print(a)

【讨论】:

@Brain 谢谢,这就是我想要的。像魅力一样工作。

以上是关于将rdd行转换为一列的主要内容,如果未能解决你的问题,请参考以下文章

如何使用matlab将文本转换为数值型数据?

怎样将matlab函数结果转换成excel格式?

将多行数据列转置为一列

使用 pyspark 将 RDD 行转换为数据帧时出错

获取 RDD[Array[String]] 的一列并将其转换为数据集/数据帧

将 RDD 中的 JSON 行转换为 Apache Spark 中的数据帧