繁体   English   中英

将标签字符串转换为二进制矢量pyspark

Convert strings of tags to binary vector pyspark

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我有看起来像这样的数据:

| Id | ----Tags---- | some_text |
| 0  | <a><b>       | ex1       |
| 1  | <a><c>       | ex2       |
| 2  | <b><c>       | ex3       |

我希望它最终看起来像这样:

| Id | a | b | c | some_text |
| 0  | 1 | 1 | 0 | ex1       |
| 1  | 1 | 0 | 1 | ex2       |
| 2  | 0 | 1 | 1 | ex3       |

我想使用pyspark作为解决方案。 关于如何解决此问题的任何想法?

1 个回复

如果您尚不知道预期的分类值,则可以使用pyspark.sql.functions.udf拆分并标记为值数组,然后使用pyspark.sql.functions.explode函数将其转换为列。 然后,您可以将值透视到列:

# required imports
import pyspark.sql.functions as F
from pyspark.sql.types import ArrayType, StringType
import re

# regex pattern to split 'tagged values'
pat = re.compile('<(.*?)>')

#udf to split string to array of values
split_f = f.udf(lambda s: pat.split(s), ArrayType(StringType()))

# sample data
df = spark.createDataFrame([(0,'<a><b>','ex1'),(1,'<a><c>','ex2')], ['Id', '---Tags---', 'some_text'])

+---+----------+---------+
| Id|---Tags---|some_text|
+---+----------+---------+
|  0|    <a><b>|      ex1|
|  1|    <a><c>|      ex2|
+---+----------+---------+

df.withColumn('exploded', 
   F.explode(split_f(F.col('---Tags---'))))
  .groupby('Id').pivot('exploded').count().na.fill(0).show()

+---+---+---+---+
| Id|  a|  b|  c|
+---+---+---+---+
|  0|  1|  1|  0|
|  1|  1|  0|  1|
+---+---+---+---+
1 将二进制字符串转换为字符

我已将一些字符转换为二进制。 现在我想将它们转换回原始字符。 有人可以告诉我怎么做吗? 这是我将字符转换为二进制的代码。 其中c是字符类型。 因此,当我将字符'a'转换为二进制时,我会得到这样的结果 - 1101101 ...

2 SAS:将字符串二进制转换为字符

我有一个字符串二进制01001101的数据集。 现在我想将此字符串转换为字符M SAS Formats和Informats没有达到我预期的结果,因为我找不到合适的结果。 如何将字符串二进制转换为字符? ...

5 将字符串转换为二进制

我需要一些将字符串转换为二进制的帮助。 我必须使用自己的代码而不是内置函数来执行此操作(除非我可以使用“ ord”将字符转换为十进制)。 我的问题是,它似乎只将第一个字符转换为二进制,而不是字符串的所有字符。 例如,如果您键入“ hello”,它将把h转换为二进制而不是全部。 这 ...

6 字符串转换为二进制? 爪哇

我必须将String转换为二进制代码。 我的第一个任务是通过用户输入为“ ipv4header”输入一些值。 结果看起来像: 4-5-24-5-0-000-0-32-0-0-195.168.1.102-223.168.1.102这不是问题,现在我必须将此结果转换为二进制。 预期结果 ...

7 将字符串转换为二进制序列

我想将任何char转换为其二进制表示形式(现在不像我的cuurent代码那样转换为字符串),它需要是一个二进制数序列,之后,我将从所做的事情中每16位取一并计算它们的和, 我不能使用numpy或任何其他软件包,这就是我现在得到的 我当前的代码获取一个字符串(例如:“ 10100/01”) ...

8 Haskell将字符串转换为二进制数

我需要将一个字符串转换为Haskell中的二进制数列表。 我已经编写了两个函数来执行此操作,但是我不确定如何将它们组合为一个。 到目前为止,我有 将列表中的每个字符转换为十进制数。 下一个功能 将十进制数转换为其等效的二进制数。 我不确定如何将第二个函数应用于列表中的每个 ...

9 将二进制数转换为字符串python

我试图将输入011迭代为一个字符串,例如: 但是在检查值时,似乎给出了不同的输出。 为什么我得到上述值'9' ? 实现方式 : 我想显示一个列表的值 假设list = [1,2,3]根据字符串011 所以输出将是 ...

10 将PySerial Readline从字符串转换为二进制

我正在从PIC微控制器发送字节串0x0F,0x07、0x55、0x55、0x55。 通过Python的串行端口,我正在PySerial中使用readlines()命令。 我收到: 这确实与我发送的字节串相对应,但是使用看起来像十六进制和ASCII字符的奇怪组合来格式化。 什么是 ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM