- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 3.1.2 版的 Spark 集群。我有以下输入数据
+-------+------+------------+
| name|gender| arr|
+-------+------+------------+
| James| M| [60000]|
|Michael| M| [70000, 31]|
| Robert| null|[44, 400000]|
| Maria| F|[500000, 12]|
| Jen| | null|
+-------+------+------------+
我必须从所有列中删除空值。 “性别”列是字符串类型,而“arr”列是数组类型。一些值是 null 是两列。当我应用 fillna 函数时,值会从 gender 列中删除,但不会从 arr 列中删除。看看输出
>>> df.fillna("").show()
+-------+------+------------+
| name|gender| arr|
+-------+------+------------+
| James| M| [60000]|
|Michael| M| [70000, 31]|
| Robert| |[44, 400000]|
| Maria| F|[500000, 12]|
| Jen| | null|
+-------+------+------------+
如果我使用 na.drop 或 na.fill 函数,也会发生同样的情况。问题出在哪里 ?如何从 arr 列中删除 null
最佳答案
fillna
只支持int, float, string, bool
数据类型,其他数据类型的列将被忽略。
For example, if value is a string, and subset contains a non-string column, then the non-string column is simply ignored.(doc)
您可以使用 when 和 otherwise
构造替换数组列中的 null
值。
import pyspark.sql.functions as F
default_value = F.array().cast("array<int>")
fill_rule = F.when(F.col('arr').isNull(),default_value).otherwise(F.col('arr'))
df.withColumn('arr', fill_rule).show()
关于apache-spark - pyspark fillna 不适用于 ArrayType 列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69477151/
我有一个带有 2 个 ArrayType 字段的 PySpark DataFrame: >>>df DataFrame[id: string, tokens: array, bigrams: arra
我正在尝试运行一些测试。即 assertDataFrameEquals(etalon, agg) 在 2 个数据帧上。但是得到如下错误 ScalaTestFailureLocation Expecte
我有包含 2 个 ArrayType 列的数据框。我想找出列之间的区别。 column1 将始终具有值,而 column2 可能具有空数组。我创建了以下 udf,但它不起作用 df.show() 给出
我正在尝试创建一个与 ArrayType 一起使用的全局 findAndRemove 函数,但遇到了问题。我收到一条错误消息: 无法将表达式的类型“0”转换为“@lvalue Named”类型 这是函
extension Array where Element: _ArrayType, Element.Generator.Element: Any { func transpose() ->
这个问题在这里已经有了答案: TypeError: Column is not iterable - How to iterate over ArrayType()? (2 个答案) 关闭 3 年前
我在 Pyspark 数据框中有一列,结构如下 Column1 [a,b,c,d,e] [c,b,d,f,g,h,i,p,l,m] 我想返回另一列,随机选择每行中的每个数组,数量在函数中指定。 所以像
我正在尝试按元素求和,并且我创建了这个虚拟 df。输出应该是 [10,4,4,1] from pyspark.sql.types import StructType,StructField, Stri
我有一个包含可以包含整数值的数组类型列的数据框。如果没有值,它将只包含一个值,它将是空值 重要 :注意该列不会为空,而是具有单个值的数组;空值 > val df: DataFrame = Seq((
在 HDF5 的 C++ 绑定(bind)中,我可以创建一个 1x4 H5::ArrayType 由带有类似表达式的 double 组成 H5::ArrayType array_type(H5::Pr
我有一个以 XML 形式出现的数据集,其中一个节点包含 JSON。 Spark 将其作为 StringType 读取,因此我尝试使用 from_json() 将 JSON 转换为 DataFrame。
我正在尝试使用 ArrayType() 列创建一个新的数据框,我尝试过定义模式和不定义模式,但无法获得所需的结果。我的代码在下面,带有架构 from pyspark.sql.types import
我写了一个UDF。它非常慢。我想用 pandas_udf 替换它以利用矢量化。 实际的 udf 有点复杂,但我创建了一个简化的玩具版本。 我的问题:是否可以将玩具示例中的 UDF 替换为可以利用矢量化
我目前有以下代码: def _join_intent_types(df): mappings = { 'PastNews': 'ContextualInformation', 'C
给定以下形式的 PySpark DataFrame: +----+--------+ |time|messages| +----+--------+ | t01| [m1]| | t03|[m1
我正在尝试为我的新 DataFrame 创建一个架构,并尝试了括号和关键字的各种组合,但无法弄清楚如何完成这项工作。我目前的尝试: from pyspark.sql.types import * sc
我有一个 PySpark 数据框,其中一列是字符串类型,而字符串是一个 2D 数组/列表,需要分解为行。但是,由于它不是结构/数组类型,因此无法直接使用explode。 这可以在下面的示例中看到: a
我有一个包含 3 列名为 id、feat1 和 feat2 的数据框。 feat1 和 feat2 是字符串数组的形式: Id, feat1,feat2 ------------------ 1, [
我有一个 HDF5 数据集,它是使用 H5::ArrayType 为 double[3] 编写的。 DataSpace 是一维的 (rank=1),具有 ndat 条目(每个类型都是 double[3
我正在尝试编写一个 PostgreSQL 函数并存储一个 ArrayType *state,每次我调用该函数时都需要更改它。每次调用函数时,我是否需要在 construct_array 中使用单独的
我是一名优秀的程序员,十分优秀!