如何在pyspark数据框中选择/过滤数据?

问题描述 投票:0回答:1

我使用过 pandas dataframe,需要对数据进行一些基本的选择/过滤,但是在 pyspark dataframe 中。我正在将脚本作为 aws 粘合作业运行。我是否需要将 pyspark 数据帧转换为 pandas df 来执行一些基本操作,例如过滤和选择下面的 pandas 版本。

我的问题,pandas 和动态 pyspark dataframe 之间在我们如何选择/过滤数据方面有什么区别吗?

熊猫版

import pandas as pd

df = pd.read_csv('abc.csv')

#select and merge column values 
df['combined'] = df['first_name'] + ' ' + df['last_name']

filter_result = df[df['martial_status'] == 'married']

...
from pyspark.context import SparkContext
from awsglue.context import GlueContext


ctx= SparkContext.getOrCreate()
glue_ctx = GlueContext(ctx)


dynamic_frm = glue_ctx.create_dynamic_frame_from_options(
  connection_type='s3',
  connection_options={'paths': ['s3://.../abc.csv']},
  format='csv'
)


python pandas dataframe apache-spark
1个回答
0
投票

这里是 pyspark 中的等效代码:

from pyspark.context import SparkContext
from awsglue.context import GlueContext
from pyspark.sql.functions import concat_ws, col

ctx = SparkContext.getOrCreate()
glue_ctx = GlueContext(ctx)

# Load data into DynamicFrame
dynamic_frm = glue_ctx.create_dynamic_frame_from_options(
    connection_type='s3',
    connection_options={'paths': ['s3://.../abc.csv']},
    format='csv'
)

# Convert DynamicFrame to DataFrame
spark_df = dynamic_frm.toDF()

spark_df = spark_df.withColumn('combined', concat_ws(' ', col('first_name'), col('last_name'))

filter_result = spark_df.filter(col('martial_status') == 'married')
© www.soinside.com 2019 - 2024. All rights reserved.