栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

使用类似SQL的IN子句过滤Pyspark DataFrame

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

使用类似SQL的IN子句过滤Pyspark DataFrame

您传递给

SQLContext
它的字符串是在SQL环境范围内评估的。它没有捕获闭包。如果要传递变量,则必须使用字符串格式显式地进行操作:

df = sc.parallelize([(1, "foo"), (2, "x"), (3, "bar")]).toDF(("k", "v"))df.registerTempTable("df")sqlContext.sql("SELECt * FROM df WHERe v IN {0}".format(("foo", "bar"))).count()##  2

显然,出于安全考虑,这不是您在“实际” SQL环境中要使用的东西,但在这里并不重要。

在实践中,

Dataframe
当您要创建动态查询时,DSL是很多选择:

from pyspark.sql.functions import coldf.where(col("v").isin({"foo", "bar"})).count()## 2

它很容易为您构建,组成和处理HiveQL / Spark SQL的所有细节。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/633626.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号