PYSPARK - 如何在 SQLCONTEXT 结果中获取唯一值

问题描述 投票:0回答:2

我试图在列表中返回此 Sqlcontext 结果,但返回的内容非常多,而我只想要值。

Pyspark 代码:

rdd = sqlcontext.sql('select * from Dicionario where CD_PROC="{}"'.format(processo)).rdd.map(lambda l: l).collect()

结果(一行):

[Row(CD_PROC=u'CAL-0004-LL0', NM_CAMPO=u'TIPO_REGISTRO', TIPO=u'A', TAMANHO=u'1', CD_DOMI=u'', ID_PK=u'0', DT_HOM=u'')]

我想要:

[CAL-0004-LL0, TIPO_REGISTRO, A, 1, ,0,,]
apache-spark pyspark apache-spark-sql
2个回答
0
投票

Row
对象是
tuple
的子类。

results = [Row(CD_PROC=u'CAL-0004-LL0', NM_CAMPO=u'TIPO_REGISTRO', TIPO=u'A', TAMANHO=u'1', CD_DOMI=u'', ID_PK=u'0', DT_HOM=u'')]
print(tuple(results[0]))  # or use list() or [:] anything you like

输出

(u'', u'CAL-0004-LL0', u'', u'0', u'TIPO_REGISTRO', u'1', u'A')

0
投票
output_list = []
for c in Dicionario.columns:
    output_list.append(rdd.collect()[0][c])

output_list
© www.soinside.com 2019 - 2024. All rights reserved.