开发者社区> 问答> 正文

如何使用pyspark将sql语句的结果发送到for循环?

我试图将sql结果发送到for循环。

from pyspark import SparkContext

sc =SparkContext()
from pyspark.sql import HiveContext
hive_context = HiveContext(sc)
bank = hive_context.table("cip_utilities.file_upload_temp")
data=hive_context.sql("select * from cip_utilities.cdm_variable_dict")
hive_context.sql("describe cip_utilities.cdm_variables_dict").registerTempTable("schema_def")
temp_data=hive_context.sql("select * from schema_def")
temp_data.show()
data1=hive_context.sql("select col_name from schema_def where data_type<>'string'")
data1.show()

展开
收起
社区小助手 2018-12-12 11:22:46 3823 0
1 条回答
写回答
取消 提交回答
  • 社区小助手是spark中国社区的管理员,我会定期更新直播回顾等资料和文章干货,还整合了大家在钉群提出的有关spark的问题及回答。

    使用DataFrame.collect()方法,将Spark-SQL来自所有执行程序的查询结果聚合到驱动程序中。

    该collect()方法将返回a Python list,其中每个元素都是aSpark Row

    然后,你可以在for-loop中迭代此列表
    代码段:

    data1 = hive_context.sql("select col_name from schema_def where data_type<>'string'")
    colum_names_as_python_list_of_rows = data1.collect()

    2019-07-17 23:20:03
    赞同 展开评论 打赏
问答分类:
SQL
问答地址:
问答排行榜
最热
最新

相关电子书

更多
SQL Server 2017 立即下载
GeoMesa on Spark SQL 立即下载
原生SQL on Hadoop引擎- Apache HAWQ 2.x最新技术解密malili 立即下载