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

2023-11-27

我想用类似 SQL 的方法过滤 Pyspark DataFrameIN子句,如

sc = SparkContext()
sqlc = SQLContext(sc)
df = sqlc.sql('SELECT * from my_df WHERE field1 IN a')

where a是元组(1, 2, 3)。我收到此错误:

java.lang.RuntimeException: [1.67] 失败: ``('' 预期但找到了标识符

这基本上是说它期待类似的事情'(1,2,3)'代替。 问题是我无法手动写入 a 中的值,因为它是从另一个作业中提取的。

在这种情况下我将如何过滤?


您传递给的字符串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 col

df.where(col("v").isin({"foo", "bar"})).count()
## 2

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用类似 SQL 的 IN 子句过滤 Pyspark DataFrame 的相关文章

  • VSCode Settings.json 丢失

    我正在遵循教程 并尝试将 vscode 指向我为 Scrapy 设置的虚拟工作区 但是当我在 VSCode 中打开设置时 工作区设置 选项卡不在 用户设置 选项卡旁边 我还尝试通过以下方式手动转到文件 APPDATA Code User s
  • Django Rest Framework 是否有第三方应用程序来自动生成 swagger.yaml 文件?

    我有大量的 API 端点编写在django rest framework并且不断增加和更新 如何创建和维护最新的 API 文档 我当前的版本是 Create swagger yaml文件并以某种方式在每次端点更改时自动生成 然后使用此文件作
  • Spark SQL 中的 SQL LIKE

    我正在尝试使用 LIKE 条件在 Spark SQL 中实现联接 我正在执行连接的行看起来像这样 称为 修订 Table A 8NXDPVAE Table B 4 8 NXD V 在 SQL Server 上执行联接 A revision
  • 矩形函数的数值傅里叶变换

    本文的目的是通过一个众所周知的分析傅里叶变换示例来正确理解 Python 或 Matlab 上的数值傅里叶变换 为此 我选择矩形函数 这里报告了它的解析表达式及其傅立叶变换https en wikipedia org wiki Rectan
  • 如何使用 Selenium 和 ChromeDriver 解决 TypeError: 'module' object is not callable 错误 [重复]

    这个问题在这里已经有答案了 代码试验 from selenium import webdriver from selenium webdriver chrome options import Options as Chromeoptions
  • 从 Powershell 脚本安装 Python

    当以管理员身份从 PowerShell 命令行运行以下命令时 可以在 Windows 11 上成功安装 Python c temp python 3 11 4 amd64 exe quiet InstallAllUsers 0 Instal
  • 在 DataView 的 RowFilter 中选择 DISTINCT

    我试图根据与另一个表的关系缩小 DataView 中的行范围 我使用的 RowFilter 如下 dv new DataView myDS myTable id IN SELECT DISTINCT parentID FROM myOthe
  • Java 和 Python 可以在同一个应用程序中共存吗?

    我需要一个 Java 实例直接从 Python 实例数据存储中获取数据 我不知道这是否可能 数据存储是否透明 唯一 或者每个实例 如果它们确实可以共存 都有其单独的数据存储 总结一下 Java 应用程序如何从 Python 应用程序的数据存
  • 无法导入 langchain.agents.load_tools

    我正在尝试使用 LangChain Agents 但无法导入 load tools 版本 langchain 0 0 27 我尝试过这些 from langchain agents import initialize agent from
  • 尽管我已在 python ctypes 中设置了信号处理程序,但并未调用它

    我尝试过使用 sigaction 和 ctypes 设置信号处理程序 我知道它可以与python中的信号模块一起使用 但我想尝试学习 当我向该进程发送 SIGTERM 时 但它没有调用我设置的处理程序 只打印 终止 为什么它不调用处理程序
  • pandas - 包含时间序列数据的堆积条形图

    我正在尝试使用时间序列数据在 pandas 中创建堆积条形图 DATE TYPE VOL 0 2010 01 01 Heavy 932 612903 1 2010 01 01 Light 370 612903 2 2010 01 01 Me
  • Python GTK+ 画布

    我目前正在通过 PyGobject 学习 GTK 需要画布之类的东西 我已经搜索了文档 发现两个小部件似乎可以完成这项工作 GtkDrawingArea 和 GtkLayout 我需要一些基本函数 如 fillrect 或 drawline
  • Protobuf 如何编码 oneof 消息结构

    对于这个 python 程序 在编码时运行 protobuf 编码会给出以下输出 0a 10 08 7f8a 0104 08 02 10 0392 0104 08 02 10 03 18 01 我不明白的是为什么8a后面有一个01 为什么9
  • 如何通过SQL查询检查是否有JSON函数?

    有SQL 2016 中的 JSON 函数 https learn microsoft com en us sql t sql functions json functions transact sql例如 JSON VALUE JSON Q
  • 每当使用 import cv2 时 OpenCV 都会出错

    我在终端上使用 pip3 install opencv contrib python 安装了 cv2 并且它工作了 但是每当我尝试导入 cv2 或运行导入了 cv2 的 vscode 文件时 在 python IDLE 上它都会说 Trac
  • 等待子进程使用 os.system

    我用了很多os system在 for 循环内调用创建后台进程 如何等待所有后台进程结束 os wait告诉我没有子进程 ps 我使用的是Solaris 这是我的代码 usr bin python import subprocess imp
  • 在virtualenv中下载sqlite3

    我正在尝试使用命令创建应用程序python3 manage py startapp webapp但我收到一条错误消息 django core exceptions ImproperlyConfigured 加载时出错 pysqlite2 或
  • pandas.read_csv 将列名移动一倍

    我正在使用位于的 ALL zip 文件here http www fec gov disclosurep PDownload do 我的目标是用它创建一个 pandas DataFrame 但是 如果我跑 data pd read csv
  • Spark Scala 相当于 SKEW 连接提示

    Spark SQL 有一个可用的倾斜提示 请参阅here https docs databricks com spark latest spark sql skew join html relation columns and skew v
  • 如何获取自定义订单的结果? [关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 代替ASC or DESC 我希望我的查询结果采用特定的自定义顺序 例如 如果我想要的结果不是 A B C D 而是 P A L H 该怎么

随机推荐

  • “OFFSET”附近的语法不正确。 “在实体框架核心中”的 FETCH 语句中选项 NEXT 的使用无效

    这是我的代码 var result dbContext Specialty OrderByDescending u gt u IdS Skip 20 Take 10 AsEnumerable Error OFFSET 附近的语法不正确 FE
  • C++ 友元函数被类函数隐藏?

    最小的例子 class A friend void swap A first A second void swap A other void call swap A other swap this other int main return
  • Android中的垂直滑动菜单

    安卓有垂直滑动菜单吗 我需要类似于 Google Plus 应用程序的滑动菜单的东西 但我也需要它能够从下到上垂直滑动 这种 UI 模式目前被称为侧边导航 并在此处进行了详细讨论 http www androiduipatterns com
  • 如何创建临时文件(0x100)以加速应用程序

    我见过Windows系统使用临时文件来提高某些任务的性能 当我查看这些文件时 它们被标记为 0x100 属性 我从 Microsoft 收到以下文本 通过使用 CreateFile 和 FILE ATTRIBUTE TEMPORARY 标志
  • 能否将一个属性应用于 C# 中的多个字段?

    这似乎不可能 但我还是会问 在 C 中是否可以同时将单个属性应用于多个字段 public class MyClass SomeAttribute public int m nVar1 SomeAttribute public int m n
  • 在 Haskell 中计算文件的 MD5 摘要

    使用 Haskell 如何在不使用外部工具 如md5sum 一种选择是使用pureMD5包 例如如果你想计算文件的哈希值foo txt import qualified Data ByteString Lazy as LB import D
  • 为多个客户(包括 Google)编写 ICS 文件

    我需要编写一个用于发布 ICS 文件的脚本 我读到 很难正确地做到这一点 要么是因为某些日历客户端存在缺陷 很多人声称 Google 日历存在极大的缺陷 尤其是在时区方面 要么是因为开发人员没有正确遵循规范 我只需要对北美执行此操作 但我确
  • waitpid、WNOHANG 和 SIGCHLD 示例

    我需要一个例子waitpid WNOHANG and SIGCHLD在 C 中组合 以及如何将它们全部与前 背景一起使用 signal SIGCHLD SIG IGN waitpid child status 0 取自http voyage
  • 如何使用 C# 渲染 pdf

    我想使用 C 以图形方式加载和绘制 pdf 文件 我不需要编辑它们或任何东西 只需以给定的缩放级别渲染它们即可 我发现的pdf库似乎专注于生成 我该怎么做呢 Thanks 谷歌开源了其优秀的PDF渲染引擎 PDFium 它是用 Foxit
  • 将 VBS 脚本分配给键盘快捷键

    我有一个非常基本的 VBS 脚本 我计划在我的 Windows 7 计算机上经常使用它 有什么方法可以将它绑定到键盘快捷键 这样我就不必通过浏览器令人讨厌地导航到它 我意识到这个问题并不直接涉及编程 甚至与脚本编写无关 但我无法在网上或通过
  • 如何将数据表插入SQL Server数据库表中?

    我已从某些 Excel 文件导入数据并将其保存到datatable 现在我想将此信息保存在我的SQL Server数据库 网上查了很多资料 但看不懂 有人说逐行插入另一个建议的批量更新 等等 这更好吗 我应该使用OLE or SQL Ser
  • Microsoft SQL Server CE(精简版)3.5 的 jdbc 驱动程序

    我希望能够探索此版本数据库的数据库内容 我正在考虑使用 Squirrel DB 客户端 需要 JDBC 驱动程序 因此 我正在寻找适用于 SQL SERVER 3 5 的 JDBC 类型 4 驱动程序 有人可以向我指出免费或开源或试用软件吗
  • 当实现你自己的 IUserStore 时,类上的“可选”接口实际上是可选的吗?

    我正在使用 Microsoft 的 Asp Net Identity 框架版本 2 并正在实现我自己的 IUserStore 我的新班级MyUserStore实施IUserStore
  • 位运算符在 Java 中到底是如何工作的?

    我目前正在尝试了解 Java 中的按位和位移运算符 尽管它们在简化的玩具示例 基本上是正整数 中对我来说是有意义的 但一旦涉及负数 以及在其他一些情况下 我的理解就会崩溃 我尝试用两个搜索引擎在互联网上进行搜索 甚至检查了Java规范 我找
  • 在轨道中销毁之前检查所有关联

    我的应用程序中有一个重要的模型 有很多关联 如果我想检查 before destroy 回调中的所有引用 我必须执行以下操作 has many models 1 has many models 2 mas many models 3 has
  • 避免将 master 合并到开发分支中

    我从每个冲刺开始就一直在监控两个分支 Release and Master Master分支是开发人员创建新分支 特定于任务 实现更改并创建合并到分支中的拉取请求的地方Master Release分支是特定于冲刺的 始终可提交给生产 我们只
  • 2-SUM 的线性时间算法

    给定一个整数 x 和一个由 N 个不同整数组成的排序数组 a 设计一个线性时间算法来确定是否存在两个不同的索引 i 和 j 使得 a i a j x 这是类型子集和问题 这是我的解决方案 不知道是不是早知道了 想象一下两个变量 i 和 j
  • 您推荐哪些 Javascript 模板引擎? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心以获得指导 我想知道您对javascr
  • 使用 CarrierWave 混合文件类型

    我有一个 CarrierWave 上传器 可以接受各种文件类型 有些是图像类型 例如 jpg png 有些则不是 我想创建上传文件的中等版本 version medium do process resize to fit gt 300 30
  • 使用类似 SQL 的 IN 子句过滤 Pyspark DataFrame

    我想用类似 SQL 的方法过滤 Pyspark DataFrameIN子句 如 sc SparkContext sqlc SQLContext sc df sqlc sql SELECT from my df WHERE field1 IN