我试图在列表中返回此 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,,]
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')
output_list = []
for c in Dicionario.columns:
output_list.append(rdd.collect()[0][c])
output_list