如何在Spark 2.3中编写与
源代码来自Spark 2.4。
如何在PySpark中实现类似功能?
arrays_zip
等效的函数?源代码来自Spark 2.4。
def arrays_zip(*cols):
"""
Collection function: Returns a merged array of structs in which the N-th struct contains all
N-th values of input arrays.
:param cols: columns of arrays to be merged.
>>> from pyspark.sql.functions import arrays_zip
>>> df = spark.createDataFrame([(([1, 2, 3], [2, 3, 4]))], ['vals1', 'vals2'])
>>> df.select(arrays_zip(df.vals1, df.vals2).alias('zipped')).collect()
[Row(zipped=[Row(vals1=1, vals2=2), Row(vals1=2, vals2=3), Row(vals1=3, vals2=4)])]
"""
sc = SparkContext._active_spark_context
return Column(sc._jvm.functions.arrays_zip(_to_seq(sc, cols, _to_java_column)))
如何在PySpark中实现类似功能?
f=lambda x,y:list(zip(x,y))
;myudf = F.udf(f,ArrayType(StructType([StructField('vals1',IntegerType(),False),StructField('vals2',IntegerType(),False)])))
,之后使用df.select(myudf(F.col('vals1'),F.col('vals2'))).collect()
进行操作。如果你没有将引入命名为“F”,则删除前缀“F”。 - anky