проверка столбца столбцов данных pyspark - PullRequest
1 голос
/ 13 января 2020

Я хочу проверить каждый столбец фрейма данных pyspark, и если столбец соответствует указанным c dtypes, он будет выполнять определенные функции. ниже мои коды и набор данных.

набор данных:

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.

Запрос на боковое обучение: Если возможно, кто-нибудь может сказать мне, как редактировать только указанный столбец c? Я понимаю использование .select, но может кто-нибудь показать некоторые примеры с некоторыми наборами данных, если это возможно. спасибо

Мой ожидаемый результат:

+---+---+
| id|  v|
+---+---+
|  A|  3|
|  A|  4|
|  A|  5|
|  A|  6|
|  B|  7|
|  B|  8|
|  B|  9|
|  B|  10|
+---+---+

Примечание: я новичок в pyspark, поэтому я не понимаю, почему нужно использовать 'col'. что это вообще на самом деле?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...