将 rdd 行转换为一列

Convert rdd rows into one columns

我正在尝试将行中的所有值放入列中。我没有索引,所以很难将所有内容都放在一栏中。

代码:获取值

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

感谢任何帮助。

谢谢

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

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)