将数据帧转换为 JSON 时删除空数组字段

2023-12-20

有没有什么方法可以通过不使用那些为空的字段来从 Spark 数据帧创建 json:

假设我有一个数据框:

+-------+----------------+

|   name|       hit_songs|

+-------+----------------+

|beatles|[help, hey jude]|

|  romeo|      [eres mia]|

| juliet|      null      |

+-------+----------------+

我想将其转换为 json,例如:

[{
name: "beatles",
hit_songs: [help, hey jude]
},
{
name: "romeo",
hit_songs: [eres mia]
},
{
name: "juliet"
}
]

如果 json_object 中的 hit_songs 字段值为空,我不希望该字段


Use to_json对于这种情况的函数。


df=spark.createDataFrame([("beatles",["help","hey juude"]),("romeo",["eres mia"]),("juliet",None)],["name","hit_songs"])

from pyspark.sql.functions import *

df.groupBy(lit(1)).\
agg(collect_list(to_json(struct('name','hit_songs'))).alias("json")).\
drop("1").\
show(10,False)
#+-------------------------------------------------------------------------------------------------------------------+
#|json                                                                                                               |
#+-------------------------------------------------------------------------------------------------------------------+
#|[{"name":"beatles","hit_songs":["help","hey juude"]}, {"name":"romeo","hit_songs":["eres mia"]}, {"name":"juliet"}]|
#+-------------------------------------------------------------------------------------------------------------------+

#using toJSON function.
df.groupBy(lit(1)).\
agg(collect_list(struct('name','hit_songs')).alias("json")).\
drop("1").\
toJSON().\
collect()
#[u'{"json":[{"name":"beatles","hit_songs":["help","hey juude"]},{"name":"romeo","hit_songs":["eres mia"]},{"name":"juliet"}]}']
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将数据帧转换为 JSON 时删除空数组字段 的相关文章

  • 如何在 Smarty 中打印 json

    我从 api 获取 json 如何使用 Smarty 打印 json Json格式 first name jinu last name mk loginid email protected cdn cgi l email protectio
  • Windows批处理文件:将结构转换为单行字符串

    我需要将这个艰巨的任务作为批处理文件来完成 这对于 C 来说不是最困难的 但在 DOS 中是一个地狱 至少对我来说 我需要将结构转换为单个 var 字符串 才能在我的程序中再次将它们转换为该结构 别担心回归 一切都已经完成了 该结构的大小会
  • 将 Excel 范围转换为 VBA 字符串

    我想将给定范围内的值转换为 VBA 字符串 其中原始单元格值由任何选定的列分隔符和行分隔符分隔 分隔符可以是一个字符或更长的字符串 行分隔符是行末尾的字符串 该字符串应该像我们从左上角 从左到右 到右下角读取文本一样完成 以下是范围 A1
  • Java-如何将黑白图像加载到二进制中?

    我在 FSE 模式下使用 Java 和 swing 我想将完全黑白图像加载为二进制格式 最好是二维数组 并将其用于基于掩码的每像素碰撞检测 我什至不知道从哪里开始 过去一个小时我一直在研究 但没有找到任何相关的东西 只需将其读入Buffer
  • Excel:#CALC!使用 MAP 函数计算间隔重叠时出现错误(嵌套数组)

    我正在努力解决以下公式 它适用于某些情况 但不适用于所有情况 名字input有失败的数据集 得到一个 CALC 描述 嵌套数组 错误 LET input N1 0 0 N1 0 10 N1 10 20 names INDEX input 1
  • 了解 Spark 中的 DAG

    问题是我有以下 DAG 我认为当需要洗牌时 火花将工作划分为不同的阶段 考虑阶段 0 和阶段 1 有些操作不需要洗牌 那么为什么 Spark 将它们分成不同的阶段呢 我认为跨分区的实际数据移动应该发生在第 2 阶段 因为这里我们需要cogr
  • 尝试使用 Javascript 解决对称差异

    我正在尝试找出对称的解决方案 使用 javascript 完成以下任务的差异 目标 接受未指定数量的数组作为参数 保留数组中数字的原始顺序 不删除单个数组中数字的重复项 删除数组中出现的重复项 因此 例如 如果输入是 1 1 2 6 2 3
  • 使用随机放置的 NaN 创建示例 numpy 数组

    出于测试目的 我想创建一个M by Nnumpy 数组与c随机放置的 NaN import numpy as np M 10 N 5 c 15 A np random randn M N A mask np nan 我在创建时遇到问题mas
  • 使用 UISearchBar 过滤数组

    我目前正在使用以下代码来过滤数组并将结果显示在我的 tableView 中 问题是 只有当搜索与确切的单词匹配时 才会返回结果 如何更改数组过滤器以在输入时搜索每个字符 let data Mango Grape Berry Orange A
  • 格式化多维数组 Python

    如何编写代码来更改多维数组中每个单独数组的值a出现负值后立即归零 所以里面的第二个数组a有负值 12 34 5 6 88 10 30 75 10 会将其所有值及其后的值转为零 将数组变成 12 34 5 6 88 0 0 0 我怎样才能获得
  • 如何将我的 json 字符串 avro 二进制编码为字节数组?

    我有一个实际的 JSON 字符串 我需要将其 avro 二进制编码为字节数组 在经历了Apache Avro 规范 http avro apache org docs 1 7 7 spec html 我想出了下面的代码 我不确定这是否是正确
  • pyspark加入多个条件

    我如何指定很多条件 当我使用pyspark时 join 例子 与蜂巢 query select a NUMCNT b NUMCNT as RNUMCNT a POLE b POLE as RPOLE a ACTIVITE b ACTIVIT
  • Redim Preserve 给出“下标超出范围”

    我想要Redim Preserve一个数组我不断收到错误 下标超出范围 我知道只有最后一个维度的大小可以更改 这正是我正在做的事情 这里出了什么问题 数组的类型是Variant BmMatrix Sheets BENCH Range a60
  • 数量重新分配逻辑 - 具有外部数据集的 MapGroups

    我正在研究一种复杂的逻辑 需要将数量从一个数据集重新分配到另一个数据集 在例子中我们有Owner and Invoice 我们需要从数量中减去Invoice准确地Owner匹配 在给定汽车的给定邮政编码处 减去的数量需要重新分配回同一辆车出
  • PySpark - 系统找不到指定的路径

    Hy 我已经多次运行 Spark Spyder IDE 今天我收到这个错误 代码是相同的 from py4j java gateway import JavaGateway gateway JavaGateway os environ SP
  • 在 C 中通过引用传递数组

    我是 C 新手 我有一个疑问 由于 C 函数创建其参数的本地副本 我想知道为什么以下代码按预期工作 void function int array array 0 4 array 1 5 array 2 6 int main int arr
  • Spark:导入UTF-8编码的文本文件

    我正在尝试处理一个包含很多特殊字符的文件 例如德语变音符号 o 等 如下所示 sc hadoopConfiguration set textinputformat record delimiter r n r n sc textFile f
  • Spark-1.6.1 上的 DMLC 的 XGBoost-4j

    我正在尝试在 Spark 1 6 1 上使用 DMLC 的 XGBoost 实现 我能够使用 XGBoost 训练我的数据 但在预测方面面临困难 我实际上想以在 Apache Spark mllib 库中完成的方式进行预测 这有助于计算训练
  • 按范围迭代数组

    我有一个数组 1 2 3 4 5 6 100 我希望将此数组迭代 5 次 具体来说 取数组的前 5 个数字并获取平均值 继续处理接下来的 5 个数字并获取平均值 依此类推 我尝试过多种方法 例如Dequeue和 for 循环但未能获得所需的
  • 如何解决使用 Spark 从 S3 重新分区大量数据时从内存中逐出缓存的表分区元数据的问题?

    在尝试从 S3 重新分区数据帧时 我收到一个一般错误 Caused by org apache spark SparkException Job aborted due to stage failure Task 33 in stage 1

随机推荐

  • setOnItemClickListener() 不适用于自定义 ListView @ Android

    我已经实现了一个自定义ListView通过扩展LinearLayout对于每一行 每行都有一个小缩略图 一个文本和一个check box The list view部署正确 我可以毫无问题地滚动和快速浏览它 But The ListView
  • Puput(基于 Wagtail 的博客)- 文件在哪里?

    我已将 puput 博客添加到现有的 Django 项目中 我遵循了设置独立博客应用程序的所有步骤 https puput readthedocs io en latest setup html https puput readthedoc
  • 无法连接到 docker 的 docker 镜像中的守护进程 docker

    我正在尝试使用 gitlab 构建 CI 我从 docker 的 docker 镜像开始 我的前端存储库没有任何问题 但现在后端使用相同的 gitlab ci 配置文件 我遇到了这个守护进程错误 这是构建的输出 0KRunning with
  • 图像叠加闪烁?

    事实是所有这些解决方案都有效 只是不适用于该项目 所以我将重新提出问题 略有不同 本质上我有一个图像 当有人将鼠标光标移到它上面时 它会显示一个 div 其中包含一个图像 又名播放按钮 当他们将光标移动到图像之外时 播放按钮就会消失 它有效
  • 是否可以在 Excel VBA 中返回复选框的名称?

    我目前正在处理几个包含数百个复选框的工作表 这些复选框背后的代码工作正常 但我正在寻找一种方法来列出每列复选框的名称 即 例如 我需要知道 G 列中所有复选框的名称 有谁知道这是否可能 预先非常感谢 考虑使用 TopLeftCell 属性
  • 可数对象和不可数对象有什么区别

    我正在尝试找出可数和不可数对象之间的差异 首先我找到了对象的类型 echo gettype data current fiat currency 这是一个Object 但是当我检查它是否是一个可数对象时 var dump data curr
  • 获取 Google 折线图的颜色值?

    可以为 Google 图表设置颜色值 但是是否可以获取图表的预设颜色值 是否有一个数组可以保存这些值并可以访问 在此 Google 网上论坛讨论中 默认颜色数组未记录且无法访问 但是 如果您想要颜色数组 泽维尔 古马拉 https grou
  • VBA:具有多个操作的单行 if 语句

    我真的应该能够用谷歌搜索这个 但我找不到我想知道的东西 我想检查文件是否存在 如果没有 将弹出一个消息框 并且 VBA 应退出子进程 If Dir C file txt vbDirectory Then MsgBox File doesn
  • 为什么 Spark ML ALS 算法打印 RMSE = NaN?

    我使用 ALS 来预测评级 这是我的代码 val als new ALS setMaxIter 5 setRegParam 0 01 setUserCol user id setItemCol business id setRatingCo
  • 无法检索 write() 的 AudioTrack 指针

    我正在尝试实现 AudioTrack 以在 Android 设备中检索来自 IAX 的来电音频 但一段时间后遇到异常 private void writeBuff short buf try if this track null Log w
  • “长轮询”是创建 Web 实时应用程序的最有效方法吗?

    我想创建一个像这样的应用程序 http collabedit com http collabedit com 创建这个实时应用程序的最有效方法是什么 闪光 长轮询 Http 流式传输 或者是其他东西 谢谢 目前 长轮询可能是最好的解决方案
  • Office 365 Sharepoint 将文件上传到文档库

    我正在尝试使用以下代码通过 Web 服务将文件添加到 Sharepoint Office365 上的文档库 public void SaveFileToSharePoint string fileName try var copyServi
  • 如何使用 cli 获取帐户的接近余额?

    是否有可能使用接近帐户余额靠近 cli https docs near org docs tools near cli Running near state
  • 使用 Ansible 在 Windows 上执行 .exe

    我们想要在带有 Ansible 1 8 2 的 Windows Server 2012 上部署应用程序 我已经搜索并找到了a list http docs ansible com list of windows modules htmlWi
  • 如何在视图外评估 Aurelia 插值表达式?

    在 Aurelia 中 假设我有一个包含插值表达式的字符串 Today at value date time 和一些代表绑定上下文的对象 value new Date 有没有办法在视图之外只获取该字符串和该对象 并获取结果格式化字符串 即
  • 如何修复错误消息:“chromedriver.exe”可执行文件可能具有错误的权限[重复]

    这个问题在这里已经有答案了 我正在安装 selenium 的网络驱动程序 但是我收到以下错误 PermissionError Traceback most recent call last usr local lib python3 6 d
  • 排除 Twitter 流中的回复 - tweepy

    我正在使用 tweepy 从 Twitter 的流 api 中提取推文 然后我用它来自动回复该用户 例如 如果我想从中提取实时推文然后回复唐纳德 特朗普 我可以使用 import tweepy from tweepy import Stre
  • 在 Apache Kafka 中,为什么消费者实例不能多于分区?

    我正在学习卡夫卡 阅读这里的介绍部分 https kafka apache org documentation html introduction https kafka apache org documentation html intr
  • Android EditText 以编程方式调整大小

    我有一个视图 其中有两个 LinearLayout 一个包含文本 EditText 和一个按钮 另一个仅包含文本和 EditText 我试图让第二个 EditText 在第二行 的宽 度与第一行的宽度相匹配 我尝试将其设为 TableLay
  • 将数据帧转换为 JSON 时删除空数组字段

    有没有什么方法可以通过不使用那些为空的字段来从 Spark 数据帧创建 json 假设我有一个数据框 name hit songs beatles help hey jude romeo eres mia juliet null 我想将其转