查询 Parquet 记录中的嵌套数组

2023-12-14

我正在尝试不同的方法来查询记录数组中的记录并将完整的行显示为输出。

我不知道哪个嵌套对象有字符串“pg”。但我想查询特定对象。对象是否有“pg”。如果“pg”存在,那么我想显示完整的行。如何在嵌套对象上编写“spark sql查询”而不指定对象索引。所以我不想使用children.name的索引

我的 Avro 记录:

{
"name": "Parent",
"type":"record",
"fields":[
    {"name": "firstname", "type": "string"},

    {
        "name":"children",
        "type":{
            "type": "array",
            "items":{
                        "name":"child",
                        "type":"record",
                        "fields":[
                            {"name":"name", "type":"string"}
                        ]
                    }
            }
    }
]
}

我正在使用 Spark SQL 上下文来查询读取的数据帧。 所以如果输入是

Row no   Firstname Children.name
    1    John       Max
                    Pg
    2    Bru        huna
                    aman

输出应返回 poq 1,因为它具有 child.name 的一个对象为 pg 的行。

val results = sqlc.sql("SELECT firstname, children.name FROM nestedread where children.name = 'pg'")
results.foreach(x=> println(x(0), x(1).toString))

上面的查询不起作用。但当我查询children[1].name 时它会起作用。

我还想知道我是否可以过滤一组记录然后爆炸。而不是首先分解并创建大量行然后进行过滤。


看来你可以使用

org.apache.spark.sql.functions.explode(e: Column): Column

例如在我的项目(在java中)中,我嵌套了像这样的json:

{
    "error": [],
    "trajet": [
        {
            "something": "value"
        }
    ],
    "infos": [
        {
            "something": "value"
        }
    ],
    "timeseries": [
        {
            "something_0": "value_0",
            "something_1": "value_1",
            ...
            "something_n": "value_n"
        }
    ]
}

我想分析“时间序列”中的数据,所以我这样做了:

DataFrame ts = jsonDF.select(org.apache.spark.sql.functions.explode(jsonDF.col("timeseries")).as("t"))
                     .select("t.something_0",
                             "t.something_1",
                             ...
                             "t.something_n");

我也是新来的火花。希望这能给你一个提示。

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

查询 Parquet 记录中的嵌套数组 的相关文章

随机推荐

  • 在 JavaScript 中设置或更改 PHP 变量

    我是 PHP 和 JavaScript 的新手 我需要获取 div 的高度并将其分配给 PHP 变量 以便稍后可以将其用于进一步的处理 暂时是这样尝试的 不过效果不太好 div style height 1 some web form co
  • 为什么数组中的输入会覆盖每行的值[重复]

    这个问题在这里已经有答案了 我有这段代码 x 3 a x x 0 for i in range 0 x for j in range 0 x dt int input insert data a i j dt print a 它应该只在被要
  • 在 React 中管理多个音频源

    我有一个 React 组件 当您单击按钮时 它会播放 暂停音频 它效果很好 我一次在一个页面上渲染大约 5 个 但是 如果您单击一个音频的 播放 然后单击另一个音频的 播放 则两个音频都会播放 这不太好 这是我的组件代码 import Re
  • 在 R Markdown 中格式化表格以导出到 MS Word 文档

    我已经开始使用expss在 R Markdown 中 在 Knitr 的帮助下生成表格 我想自动生成需要以 Microsoft Word 格式准备的报告的表格和分析 当编织到 HTML 时 表格看起来很棒 Word 中的表格显示为纯文本行
  • 三元结构不等同于 if then else

    以下 if then 测试 在 bash 中 if 1 then ls undef dummy gt dev null 2 gt 1 else echo else stmt fi 似乎不等于它的三元版本 test 1 ls undef du
  • 停止秒表

    我在 JPanel 类中有以下代码 该代码被添加到另一个类 JFrame 中 我想要实现的是某种秒表程序 startBtn addActionListener new startListener class startListener im
  • 按区域调整图像大小

    我正在尝试编写一个javascript函数来根据给定区域 或者在我的情况下 有点不准确 平均尺寸 调整图像大小 因为这更容易思考 我想要的不是输入最大高度和宽度 而是以最大面积进给 以便长或窄的图像在视觉上看起来大小大致相同 不过 我真的很
  • 如何在 Javascript 中使用 PHP 变量?

    我知道你不能直接在 javascript 代码中使用 PHP 变量 但是有办法解决吗 我需要在 javascript 中使用这些参数 username example co uk password example 它不显示 user id
  • 如何使用 ARM 模板创建标准类型逻辑应用

    我可以使用 ARM 模板通过示例工作流程创建消费类型逻辑应用程序 我想使用 ARM 模板创建带有示例工作流程的标准类型逻辑应用程序 但是 我找不到上述文档的任何参考文档 那么 任何人都可以帮我解决这个问题吗 抱歉 在我之前的回答中 我误解了
  • 如何在空手道 UI 驱动程序中处理 SSL 证书?

    When I open my resource I am faced with notification Your connection is not private Is there a way to disable the verifi
  • 从其他表中选择一个值时插入

    我想insert新值放入表中where其中一个值是从带有条件的另一个表中选择的 另一个值是常量 硬编码 该命令给出语法错误 INSERT INTO table1 itemId reservedId VALUES SELECT id FROM
  • iPhone - CLHeading 寻找方向

    在我的 iPhone 应用程序中 我使用 CLLocationManager 来查找我的 iPhone 指向的方向 我正在使用 标题 属性 它给了我 x y 和 z 值 如何从这些值中找到我当前指向的方向 北或南或东或西 你应该使用方法 l
  • 自定义查询分页 Cakephp

    我的控制器中有一个自定义查询 我想实现在 cakephp org 上找到的自定义查询分页 但他们的示例与我的示例不相似 有人可以帮我根据我的观点对这个结果进行分页吗 cars this gt Car gt query select Car
  • Java:类.this

    我有一个看起来像这样的 Java 程序 public class LocalScreen public void onMake aFuncCall LocalScreen this oneString twoString 什么是LocalS
  • PHP 会话启动“无法发送会话 cookie 和缓存限制器”

    我已将我的托管服务器从 Windows 系统更改为 Linux 系统 但是当我运行 PHP 程序时 出现以下错误 Warning session start function session start Cannot send sessio
  • 添加 firebase-ui-auth:2.3.0 依赖项时出错

    我从昨天开始就面临这个问题 我添加 Add Library compile com android support design 26 1 0 compile com firebaseui firebase ui 0 2 0 compile
  • 使用异步任务在 gridview 中加载图像,未正确加载

    我正在尝试在 gridview 异步中加载缩略图 因为其他方式显示时间太长 当我以正常方式进行操作时 它可以很好地显示图像 代码和图像 Utils public static Bitmap getThumbnail Context cont
  • ValueError:未知的 MS 编译器版本 1900

    我正在尝试使用 cygwin mingw 在 Windows 10 上使用 Python 3 5 运行一些代码 准确地说 我使用的是 PyDSTool 模块 我将其称为 dopri 积分器 问题是 我遇到了麻烦distutils无法识别 M
  • 在 WooCommerce 中列出带有订单详细信息的优惠券

    我有一个有 1000 张优惠券的网站 所有优惠券的使用限额均为一张 我使用 Raunuk Gupta 提供的代码直接从 SQL 数据库导出优惠券 WooCommerce 优惠券如何存储在数据库中 是否可以检索使用优惠券的用户的订单元 我想在
  • 查询 Parquet 记录中的嵌套数组

    我正在尝试不同的方法来查询记录数组中的记录并将完整的行显示为输出 我不知道哪个嵌套对象有字符串 pg 但我想查询特定对象 对象是否有 pg 如果 pg 存在 那么我想显示完整的行 如何在嵌套对象上编写 spark sql查询 而不指定对象索