Skip to content

Commit 5e7997e

Browse files
Sppary Array example
1 parent 769a5d9 commit 5e7997e

File tree

1 file changed

+45
-0
lines changed

1 file changed

+45
-0
lines changed
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
package com.sparkbyexamples.spark.dataframe.functions.collection
2+
3+
import org.apache.spark.sql.{Row, SparkSession}
4+
import org.apache.spark.sql.types.{ArrayType, StringType, StructType}
5+
import org.apache.spark.sql.functions.{col,concat_ws}
6+
7+
object ArrayOfString extends App{
8+
9+
val spark: SparkSession = SparkSession.builder()
10+
.master("local[1]")
11+
.appName("SparkByExamples.com")
12+
.getOrCreate()
13+
14+
val arrayStructureData = Seq(
15+
Row("James,,Smith",List("Java","Scala","C++"),"CA"),
16+
Row("Michael,Rose,",List("Spark","Java","C++"),"NJ"),
17+
Row("Robert,,Williams",List("CSharp","VB"),"NV")
18+
)
19+
20+
val arrayStructureSchema = new StructType()
21+
.add("name",StringType)
22+
.add("languagesAtSchool", ArrayType(StringType))
23+
.add("currentState", StringType)
24+
25+
26+
val df = spark.createDataFrame(
27+
spark.sparkContext.parallelize(arrayStructureData),arrayStructureSchema)
28+
df.printSchema()
29+
df.show()
30+
31+
val df2 = df.withColumn("languagesAtSchool",
32+
concat_ws(",",col("languagesAtSchool")))
33+
df2.printSchema()
34+
df2.show()
35+
36+
import spark.implicits._
37+
val df3 = df.map(f=>{
38+
val name = f.getString(0)
39+
val lang = f.getList(1).toArray.mkString(",")
40+
(name,lang,f.getString(2))
41+
})
42+
43+
df3.toDF("Name","Languages","currentState")
44+
.show(false)
45+
}

0 commit comments

Comments
 (0)