python - 检查 pyspark 数据框列的列
问题描述
我想检查 pyspark 数据框的每一列,如果该列满足特定的 dtype,那么它将执行某些功能。下面是我的代码和数据集。
数据集:
from pyspark.sql import SparkSession
spark = SparkSession.builder.master('local').appName('Word Count').config('spark.some.config.option', 'some-value').getOrCreate()
df = spark.createDataFrame(
[
('A',1),
('A', 2),
('A',3),
('A', 4),
('B',5),
('B', 6),
('B',7),
('B', 8),
],
['id', 'v']
) #I save this to csv so can just ignore my read csv park below.
代码:
from pyspark.sql import SQLContext
from pyspark.sql.types import *
from pyspark import SparkContext
sqlContext = SQLContext(sc)
df = sqlContext.read.load('test.csv',
format ='com.databricks.spark.csv',
header='true',
inferSchema='true')
from functools import reduce
from pyspark.sql.functions import col
import numpy as np
i = (reduce(lambda x, y: x.withColumn(y, np.where(col(y).dtypes != 'str', col(y)+2, col(y))), df.columns, df)) # this is the part that I wanted to change.
侧面学习请求:如果可能的话,谁能告诉我如何只编辑特定的列?我理解使用 .select 但如果可能的话,有人可以展示一些带有一些数据集的示例。谢谢你
我的预期输出:
+---+---+
| id| v|
+---+---+
| A| 3|
| A| 4|
| A| 5|
| A| 6|
| B| 7|
| B| 8|
| B| 9|
| B| 10|
+---+---+
旁注:我是 pyspark 的新手,所以我不明白为什么需要使用“col”。实际上到底是什么?
解决方案
推荐阅读
- python - 如何将基于函数的视图集成到 Django 中的基于类的视图中?
- roku - Roku Scenegraph SGDEX - 替换 HDPosterURL 变量
- php - 当分隔符有效时,explode() 偏移量和分隔符警告
- java - 无法在 wsimport 生成的源中获取具有类路径方案的 URL 的资源
- spring-boot - Spring Boot JPA 更新失败
- python - 如何为列中的每个不同值转发重采样
- php - 我已经设置了 web 和 api 防护,但使用护照登录总是访问 web 防护
- javascript - 如果数据设置为假值(null、false、未定义等),为什么 v-bind:style 不会对更改做出反应
- javascript - css square限制大小和位置到父div
- flutter - 如何更改颤动中的文本选择选项?