在sql查询后加入字符串python

时间:2016-11-30 16:36:55

标签: python pyspark pyspark-sql

我有一个返回两列的SQL查询。我需要将这些结果连接在一起,同时将结果映射到文件中。

我试过这个:

results = sqlContext.sql(query)

results.map(lambda p: ('::'.join(str(p.title),str(p.genres))).repartition(10).saveAsTextFile(sys.argv[2]))

这不会出错,只是出于某种原因退出执行。

当查询只返回带有这一行的一列时,我已经使它工作了:

results.map(lambda p: str(p.title)).repartition(10).saveAsTextFile(sys.argv[2])

如何使用分隔符'::'加入这两列?

1 个答案:

答案 0 :(得分:0)

我明白了。这只是一个没有足够括号的问题。我需要

results.map(lambda p: '::'.join(str(p.title), str(p.genres))).repartition(10).saveAsTextFile(sys.argv[2])

而不是

results.map(lambda p: ('::'.join(str(p.title),str(p.genres))).repartition(10).saveAsTextFile(sys.argv[2]))