python - 使用pyspark计算每行数据帧中的总值
问题描述
我在数据框中有一列,每一行都有一个用逗号分隔的日期列表。我想创建一个名为 date_count 的新列,其中包含每行的日期数。我尝试使用 pandas,但我想在 pyspark 中实现它,而且我也是 spark 新手。
df['date_count'] = 0
for index in df.index.tolist():
for i in (df.loc[[index],'date']):
date_list = i.split(",")
df.loc[[index],'date_count'] = len(date_list)
解决方案
下面是我的 pyspark 代码:
values = [
(1,"2019-10-11, 2019-10-12, 2019-10-13, 2019-10-14, 2019-10-15"),
(2,"2019-11-11, 2019-11-12, 2019-11-17, 2019-11-18")
]
rdd = sc.parallelize(values)
schema = StructType([
StructField("id", IntegerType(), True),StructField("dates", StringType(), True)
])
data = spark.createDataFrame(rdd, schema)
data.createOrReplaceTempView("data")
spark.sql("""select id,
dates,
size(split(dates, ",")) as date_count
from data""").show(20,False)
结果:
+---+----------------------------------------------------------+----------+
|id |dates |date_count|
+---+----------------------------------------------------------+----------+
|1 |2019-10-11, 2019-10-12, 2019-10-13, 2019-10-14, 2019-10-15|5 |
|2 |2019-11-11, 2019-11-12, 2019-11-17, 2019-11-18 |4 |
+---+----------------------------------------------------------+----------+
推荐阅读
- javascript - 如何使用 Redux 和 ReactJS 向功能组件添加操作
- mysql - 尝试创建一个将任何表记录整理成字符串的 MySQL 过程
- hdf5 - 有没有一种快速的方法可以使用 pytables 在巨大的 hdf5 表中查询不同的列值?
- neural-network - 可以访问在 Azure 机器学习服务或 Azure 机器学习工作室中训练的神经网络的内部表示吗?
- c++ - C++ 代码不打印信息,这是怎么回事?
- sql-server - 我可以在带有 SQL Server 的 Django 中使用全文搜索吗?
- wordpress - 如何使用两个值在 Post 循环上过滤和排序 WP Query?
- javascript - 处理未从“加载”页面加载的对象
- javascript - 为什么我的函数返回这个奇怪的输出?
- android - 如何使用自定义运算符构建 TensorFlow Lite 本机?