pyspark中的数据帧操作

时间:2019-03-21 03:42:17

标签: amazon-web-services pyspark pyspark-sql glue

我必须在pyspark中进行数据处理,并且正在寻找可能的最佳性能。 我的桌子有大约5000列,需要进行数据处理

columnlist包含需要处理的列的列表,而sql_df是具有5000列的数据帧,即10K行


for col_name in columnlist:
    colname_new = col_name + "_new"
    sql_df = sql_df.withColumn(col_name, lit(10000))
    sql_df = sql_df.drop(col_name)
    sql_df = sql_df.withColumnRenamed(col_name + "_new", col_name)

以上处理需要3个小时以上,这是完全不能接受的 有更好的方法吗?

我还尝试了以下给出错误的内容

   sql_df = spark.sql("Select * from filtered_table")

    def f(col_name): 
        global sql_df
        colname_new = col_name + "_new"
        sql_df = sql_df.withColumn(col_name, lit('10000'))
        sql_df = sql_df.drop(col_name)
        sql_df = sql_df.withColumnRenamed(col_name + "_new", col_name)  

    collist = sc.parallelize(filtered_df.columns).foreach(f)

预先感谢 Maxx

0 个答案:

没有答案