标签:t55o join test6 pyspark 列表 test 123 udf 字符串
初始的DataFrame:
from pyspark.sql.types import StructType, StructField schema = StructType([StructField("uuid",IntegerType(),True),StructField("test_123",ArrayType(StringType(),True),True)]) rdd = sc.parallelize([[1, ["test","test2","test3"]], [2, ["test4","test","test6"]],[3,["test6","test9","t55o"]]]) df = spark.createDataFrame(rdd, schema) df.show() +----+--------------------+ |uuid| test_123| +----+--------------------+ | 1|[test, test2, test3]| | 2|[test4, test, test6]| | 3|[test6, test9, t55o]| +----+--------------------+
使用udf自定义一个连接列表的方法:
from pyspark.sql.functions import udf, col # join是python中自带的方法,用于返回一个以分隔符sep连接各个元素后生成的字符串 join_udf = udf(lambda x: ",".join(x)) df.withColumn("test_123", join_udf(col("test_123"))).show() +----+----------------+ |uuid| test_123| +----+----------------+ | 1|test,test2,test3| | 2|test4,test,test6| | 3|test6,test9,t55o| +----+----------------+
标签:t55o,join,test6,pyspark,列表,test,123,udf,字符串 来源: https://www.cnblogs.com/Ao0216/p/16194505.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。