如何使用按id分区的Spark来计算df列中字符串的出现次数
例如,在df的列"name"中查找值"test"
在SQL中是:
SELECT
SUM(CASE WHEN name = 'test' THEN 1 else 0 END) over window AS cnt_test
FROM
mytable
WINDOW window AS (PARTITION BY id)
我试过使用map( v => match { case "test" -> 1.. })
以及像这样的东西:
def g
我有下面的电火花代码。在循环中的每一次迭代中,我过滤掉H列中带有特定字符串的所有行,然后计算G列上的一些聚合统计数据(结果为3个值)。我希望将所有的汇总计数保存在一个表中(行: CM、NCM、FP;列: POP、POP N、POP SN、POP QP)。
from pyspark.sql import SparkSession
import pandas as pd
import numpy as np
import pyspark.sql.functions as F
spark = SparkSession.builder.master("local").appName(
Spark Dataframe包含一个包含2列的表:状态、类别。
Status has values----'y' and 'n'
Category has values -'a', 'b' and 'c'
如何在spark (Scala)中找到每个类别中状态'y‘的百分比?我能做到这一点。
df.groupBy("category").agg(count("*"))
df.filter(col("status")==="y").groupBy
我正在尝试查看拼图文件,并希望显示列的不同值的数量以及它在其中找到的行数。 SQL的等价物是: select distinct(last_name), count(*) from optimization.opt_res group by (last_name) 在scala-spark中(分别显示它们): val dataFrame = sparkSession.read.parquet(fname)
dataFrame.show(truncate = false)
val disID = dataFrame.select("last_name").distinct()
d
我有有结构的源表
source Type
a aa
a aa
a bb
a cc
当使用数据透视到源数据时,得到的结果如下
source aa bb cc
a 2 1 1
当源表为空时,则生成的dataframe只会使列1和透视列不出现。
source
我所期望的是如下所示
source aa bb cc
0 0 0 0
已尝试的解决办法:
val df = spark.sql(s"""
select
source,
type
from sourceTable
"
我在Apache Spark SQL中有一个DataFrame,我想删除所有not None值都相同的列。 所以在一个虚拟的例子中 df
| A | B | C |
1 2 3
NaN 2 4
1 2 NaN
1 2 5 我只想保留C列 df_filter
| C |
3
4
NaN
5 在Python中,我将通过以下方式完
我有三列的dataframe
amount type id
12 A 1
10 C 1
21 B 2
10 A 2
2 B 3
44 B 3
我需要对每种类型的金额求和,并按id对它们进行分组。我的解决方案是
GroupedData result = dataFrame.agg(
when(dataFrame.col("type").like("A%")
.or(dataFrame.col("type"
我来自R和到PySpark,因为它的出色的火花处理,我正在努力从一个上下文映射到另一个特定的概念。
尤其是,假设我拥有如下数据集
x | y
--+--
a | 5
a | 8
a | 7
b | 1
我希望添加一个列,其中包含每个x值的行数,如下所示:
x | y | n
--+---+---
a | 5 | 3
a | 8 | 3
a | 7 | 3
b | 1 | 1
在dplyr中,我只想说:
import(tidyverse)
df <- read_csv("...")
df %>%
group_by(x) %>%
mutate(n