使用逗号分隔符将 Spark DataFrame 中的一列拆分为多列

2024-01-08

我想从一列创建多列Dataframe在 Java Spark 中使用逗号分隔符。

我在其中一列中有一个带有逗号的值DataFrame并希望使用逗号分隔符分成多列。我有以下代码:

Dataset<Row> dfreq1 = spark.read().format("json").option("inferSchema", "true")
            .load("new.json");

    dfreq1.show(5, 300);


    dfreq1.createOrReplaceTempView("tempdata");

    Dataset<Row> dfreq2 = dfreq1.sqlContext().sql("select split(names, '|') from tempdata");

    dfreq2.show(5, 300);

Input

+----------------------------+
|                         name|
+-----------------------------+
|ABC1,XYZ1,GDH1,KLN1,JUL1,HAI1|
|ABC2,XYZ2,GDH2,KLN2,JUL2,HAI2|
+-----------------------------+

Output

+-----------------------------+
| Cl1| Cl2| Cl3| Cl3|Cl4 | Cl4|
+-----------------------------+
|ABC1|XYZ1|GDH1|KLN1|JUL1|HAI1|
|ABC2|XYZ2|GDH2|KLN2|JUL2|HAI2|
+-----------------------------+

你可以试试这个

scala> var dfd =Seq(("ABC1,XYZ1,GDH1,KLN1,JUL1,HAI1"),("ABC2,XYZ2,GDH2,KLN2,JUL2,HAI2")).toDF("name")

scala> dfd.withColumn("temp", split(col("name"), ",")).select((0 until 6).map(i => col("temp").getItem(i).as(s"col$i")): _* ).show
+----+----+----+----+----+----+
|col0|col1|col2|col3|col4|col5|
+----+----+----+----+----+----+
|ABC1|XYZ1|GDH1|KLN1|JUL1|HAI1|
|ABC2|XYZ2|GDH2|KLN2|JUL2|HAI2|
+----+----+----+----+----+----+

希望这对你有帮助

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用逗号分隔符将 Spark DataFrame 中的一列拆分为多列 的相关文章

随机推荐