解压 pyspark dataframe 中的元组列表

2024-01-02

我想要解压 pyspark 数据框列中的元组列表

假设一列为[(blue, 0.5), (red, 0.1), (green, 0.7)],我想分成两列,第一列为[blue, red, green]第二列为[0.5, 0.1, 0.7]

+-----+-------------------------------------------+
|Topic|  Tokens                                   |
+-----+-------------------------------------------+
|    1|  ('blue', 0.5),('red', 0.1),('green', 0.7)|
|    2|  ('red', 0.9),('cyan', 0.5),('white', 0.4)|
+-----+-------------------------------------------+

可以使用以下代码创建:

df = sqlCtx.createDataFrame(
    [
        (1, ('blue', 0.5),('red', 0.1),('green', 0.7)),
        (2, ('red', 0.9),('cyan', 0.5),('white', 0.4))
    ],
    ('Topic', 'Tokens')
)

并且,输出应如下所示:

+-----+--------------------------+-----------------+
|Topic|  Tokens                  | Weights         |
+-----+--------------------------+-----------------+
|    1|  ['blue', 'red', 'green']| [0.5, 0.1, 0.7] |
|    2|  ['red', 'cyan', 'white']| [0.9, 0.5, 0.4] |
+-----+--------------------------------------------+

如果你的架构DataFrame看起来像这样:

 root
  |-- Topic: long (nullable = true)
  |-- Tokens: array (nullable = true)
  |    |-- element: struct (containsNull = true)
  |    |    |-- _1: string (nullable = true)
  |    |    |-- _2: double (nullable = true)

然后你可以选择:

from pyspark.sql.functions import col

df.select(
    col("Topic"),
    col("Tokens._1").alias("Tokens"), col("Tokens._2").alias("weights")
).show()
# +-----+------------------+---------------+       
# |Topic|            Tokens|        weights|
# +-----+------------------+---------------+
# |    1|[blue, red, green]|[0.5, 0.1, 0.7]|
# |    2|[red, cyan, white]|[0.9, 0.5, 0.4]|
# +-----+------------------+---------------+

并概括:

cols = [
    col("Tokens.{}".format(n)) for n in 
    df.schema["Tokens"].dataType.elementType.names]

df.select("Topic", *cols)

参考使用复杂类型查询 Spark SQL DataFrame https://stackoverflow.com/q/28332494/8371915

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

解压 pyspark dataframe 中的元组列表 的相关文章

  • jQuery UI:将可排序从手风琴内部拖动到外部

    我有两个相连的可排序列表 一个只是在页面上 另一个在手风琴内 我使用手风琴作为其他列表的容器 我的目标是用户可以打开手风琴并将项目从该列表中拉到页面上 它有效 除了占位符在离开手风琴时消失 我尝试过 helper clone 并增加 zIn
  • 字典中的列表,Python 中的循环

    我有以下代码 TYPES hotmail type hotmail lookup mixed dkim no signatures S Return Path email protected cdn cgi l email protecti
  • 如何在 Scala 中将 DataFrame 模式写入文件

    我有一个 DataFrame 它从一个巨大的 json 文件加载并从中获取架构 该架构基本上大约有 1000 列 我希望将 printSchema 的相同输出保存在文件中而不是控制台中 有任何想法吗 如果您在本地环境中工作 您可以执行以下操
  • 如何使用 PySpark 有效地将这么多 csv 文件(大约 130,000 个)合并到一个大型数据集中?

    我之前发布了这个问题并得到了一些使用 PySpark 的建议 如何有效地将这一大数据集合并到一个大数据框中 https stackoverflow com questions 60259271 how can i merge this la
  • 如何创建多个列表? [复制]

    这个问题在这里已经有答案了 我正在尝试创建多个列表 如下所示 l1 l2 ln 有什么办法可以做到这一点吗 你可以做的是使用字典 gt gt gt obj gt gt gt for i in range 1 21 obj l str i g
  • Android ListView 中的 JSONArray

    urlHi 我有这段代码 可以从 php 页面接收数据 我想将该数据放入列表视图中 我收到该数据 并且通过 system out println 看到了该数据 但列表视图中有白行 代码 public class Utenti extends
  • 查找列表中元素的索引

    我需要获取方案列表中元素的索引 例如 2 2 3 4 5 4 2 3 4 5 2 有人可以帮忙吗 像这样的东西 define list index lambda e lst if null lst 1 if eq car lst e 0 i
  • Scala 插入列表中的特定位置

    这是我确实解决的问题 但是作为一个完全命令式的 Scala 菜鸟 我觉得我发现了一些完全不优雅的东西 任何改进的想法表示赞赏 val l1 4 1 2 3 4 Nil original list val insert List 88 99
  • 如何在 Python 中以列表形式返回字典键?

    使用Python 2 7 我可以获得字典keys values or items as a list gt gt gt newdict 1 0 2 0 3 0 gt gt gt newdict keys 1 2 3 使用 Python gt
  • Prolog 中的子集

    我正在寻找一个像这样工作的谓词 subset 1 2 3 X X X 1 X 2 X 3 X 1 2 X 1 2 3 X 2 3 我见过一些subset实现 但当您想要检查一个列表是否是另一个列表的子集时 而不是当您想要生成子集时 它们都会
  • 用于在 pyspark 中处理大数的数据类型

    我将 Spark 与 python 一起使用 上传 csv 文件后 我需要解析 csv 文件中的一列 其中包含 22 位数字长的数字 为了解析我使用的列长类型 我使用 map 函数来定义列 以下是我在 pyspark 中的命令 gt gt
  • 用另一个列表替换列表的扩展切片

    我有一个清单s如下所示 s list range 1 11 我正在更换slice of s 使用下面的代码 s 1 4 0 0 0 0 print s Output 1 0 0 0 0 5 6 7 8 9 10 但是 当尝试分配相同的列表时
  • 如何将参数传递给用户定义函数?

    我有一个用户定义的函数 calc udf calculate FloatType param1 A result df withColumn col1 calc col type col pos groupBy pk sum events
  • Spark:连接两个相同分区的数据帧时防止洗牌/交换

    我有两个数据框df1 and df2我想在一个名为的高基数字段上多次加入这些表visitor id 我只想执行一次初始洗牌 并让所有连接发生 而无需在 Spark 执行器之间洗牌 交换数据 为此 我创建了另一个名为visitor parti
  • 查找成对元素的索引

    给定目标 b a 和输入 x0 b a z z x1 b a z z x2 z z a a x3 z b a a 目的是找到连续的位置 b a 元素并获取输出 gt gt gt find ba x0 0 gt gt gt find ba x
  • 如何克隆列表以使其在分配后不会意外更改?

    使用时new list my list 任何修改new list变化my list每次 这是为什么 如何克隆或复制列表来防止这种情况发生 new list my list实际上并没有创建第二个列表 分配只是复制对列表的引用 而不是实际的列表
  • Spark中DataFrame、Dataset、RDD的区别

    我只是想知道有什么区别RDD and DataFrame Spark 2 0 0 DataFrame 只是一个类型别名Dataset Row 在阿帕奇火花 你能将其中一种转换为另一种吗 首先是DataFrame是从SchemaRDD 是的
  • 如何检查Python列表中是否存在第n个元素?

    我有一个 python 列表 x a b c 有 3 个元素 我想检查第四个元素是否存在而不收到错误消息 我该怎么做呢 您检查长度 len x gt 4 或者你抓住了IndexError例外 try value x 3 except Ind
  • C++0x 元组向后存储元素

    经过一番调查 我发现 C 0x 在内存中向后存储元组中的元素 例如 采用以下代码 std tuple
  • 将字符串列表转换为字典

    我有一个清单 Tests run 1 Failures 0 Errors 0 我想将其转换为字典 Tests run 1 Failures 0 Errors 0 我该怎么做 Use a Tests run 1 Failures 0 Erro

随机推荐

  • Java中数组的使用方法

    我是 Java 新手 我正在阅读如何在 java 中使用数组 它说在java中使用数组你必须遵循三个步骤 即声明数组 创建数组和初始化数组 我明白了但是当我没有遵循上面的所有步骤时 下面的代码如何工作 int array 1234 234
  • 正确保存并更新单选按钮响应 java

    我正在尝试将单选按钮用户响应保存在 Firestore 中的 UID 下 我有两个选择yes and no到这个问题 它仅在用户按下按钮选择一个选项时起作用一次 但如果用户想要更改答案 它不会更新 替换旧响应 我想知道是否有人可以提供帮助
  • Python 长文件名支持在 Windows 中被破坏

    我编写Python脚本来复制文件 不幸的是 由于文件名太长 gt 256 它一直失败 有办法解决这个问题吗 我使用的是 Python 2 5 4 和 Windows XP Cheers Use 以字符串开头的路径 http msdn mic
  • IPv4 和 IPv6 禁止

    如果我想在我的网站上通过 IP 禁止用户 是否可以通过两者来实现IPv4 and IPv6 某些浏览器显然默认使用 IPv4 地址 而其他浏览器 如果有可能 则使用 IPv6 地址 因此 如果我通过某人当前的 IP 对其进行禁止 他们只需使
  • 解决MultisampleFramebufferAPPLE生成INVALID_OPERATION

    我不明白为什么glResolveMultisampleFramebufferAPPLE生成错误 1282 0x0502 GL INVALID OPERATION 设置代码 glGenFramebuffers 1 framebuffer gl
  • 为现有基于 MVC 的网站创建 REST API

    我有一个使用 ASP NET MVC3 开发的网站 我现在想公开一个 REST API 供其他人使用 它将公开与网站相同的功能 在网站中 一旦用户登录并根据数据库验证凭据 会话就会管理用户的登录状态 我如何使用 REST API 执行相同的
  • 在 PHP 中使用 getter 和 setter 代替函数或简单的公共字段有什么优点? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我不是 PHP 开发人员 所以我想知道 PHP 中以纯 OOP 风格使用私有字段 我喜欢的方式 使用显式 getter setter 的优点和缺
  • 保证金不起作用?两个元素之间需要空间

    首先 我很抱歉我没有把链接放在这里 这是一个工作网站 我不被允许 如果有必要 我会发布我的代码的相关部分 所以问题是非常基本的 我有一个带有一些图像的 div 和一个标题 h3 下面是我的内容开始的地方 无论我如何努力在两者之间创造一些空间
  • 在 if 语句/管理进程中使用 fork

    我有这段代码 printf L1 if fork 0 printf L2 if fork 0 printf L3 fork printf End n 作为练习 我试图找出运行此代码 而不实际运行它 所产生的有效 无效输出的一些示例 我仍然对
  • 在 Java 中将文件的前 N ​​个字节作为输入流读取?

    在我的一生中 我一直无法找到与我想做的事情相匹配的问题 所以我将在这里解释我的用例 如果您知道某个主题已经涵盖了该问题的答案 请随时引导我找到该主题 我有一段代码可以定期 每 20 秒 将文件上传到 Amazon S3 该文件是由另一个进程
  • React Hooks - 即使状态没有改变,useEffect 也会触发

    我在组件内设置了一个效果 如果另一个状态属性发生变化 它会更改视图 但由于某种原因 当组件安装时 效果会运行 即使值detailIndex没有改变 const EventsSearchList gt const view setView u
  • 为什么我在虚拟类和具体类中收到“未定义的符号... typeinfo ... vtable”?

    我正在重新学习 C 意思是 对我温柔点 我有一个超类 Node 与抽象方法 step 必须在子类 TestNode 它编译时没有错误 也没有任何警告 但链接它会导致 bash 3 2 g Wall o bin t1 src t1 cpp U
  • 在 Java 中从文件中解组 SOAP 信封

    我想对映射器对象进行单元测试 这些对象将 wsimport 生成的 Web 服务类型映射 转换到我自己的域对象中 我还想测试错误场景 例如 SOAP 错误等 并且我认为最好在真实的 SOAP 响应上测试映射器对象 我不想向 Web 服务本身
  • div id javascript中的自动递增数字

    有人能帮帮我吗 如何使用javascript在div ID中添加自动递增数字 我有四个 div 我希望通过 javascript 在 ID 中自动对它们进行编号 box1 box2 box3 box4 这是我的代码 div class so
  • 通过 Solrj 查询 Solr:基础知识

    我正在尝试在 Eclipse 中通过 solrj 查询 solr 我已经尝试过最新的solrj 维基 http wiki apache org solr SolJava例子 import org apache solr client sol
  • docker已满,所有inode都被使用

    遇到了很大的问题 我所有的索引节点似乎都被使用了 我已经清理了所有未使用的卷 清理所有容器和图像 使用命令 gt docker prune 但它似乎仍然满了 Filesystem Inodes IUsed IFree IUse Mounte
  • 实现自定义 ViewModifier,其中输出以具体视图类型为条件 (SwiftUI)

    我想创建一个 ViewModifier 其中输出以它正在修改的内容类型为条件 我管理的概念的最佳测试 使用 Text 和 TextField 作为示例视图类型 如下 struct CustomModifier
  • Java 8 groupingby 返回多个字段

    在 Java 8 中 如何对返回多个字段的单个字段进行分组 在下面的代码中 我传递名称和要求和的字段 在这种情况下为 总计 但是我想返回客户列表中每个 名称 的 总计 和 余额 字段的总和 可以是键和值作为数组的映射 可以通过使用单个 gr
  • VBA Microsoft.XMLHTTP setRequestHeader 不发送 cookie

    我的 VBA 代码发送除 Cookie 信息之外的所有标头 Dim oXMLHttpRequest As Object Set oXMLHttpRequest CreateObject Microsoft XmlHttp oXMLHttpR
  • 解压 pyspark dataframe 中的元组列表

    我想要解压 pyspark 数据框列中的元组列表 假设一列为 blue 0 5 red 0 1 green 0 7 我想分成两列 第一列为 blue red green 第二列为 0 5 0 1 0 7 Topic Tokens 1 blu