将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行转换为一列的主要内容,如果未能解决你的问题,请参考以下文章