【发布时间】:2015-09-17 08:20:36
【问题描述】:
我在 Scala 中使用 spark 库。我使用
创建了一个 DataFrameval searchArr = Array(
StructField("log",IntegerType,true),
StructField("user", StructType(Array(
StructField("date",StringType,true),
StructField("ua",StringType,true),
StructField("ui",LongType,true))),true),
StructField("what",StructType(Array(
StructField("q1",ArrayType(IntegerType, true),true),
StructField("q2",ArrayType(IntegerType, true),true),
StructField("sid",StringType,true),
StructField("url",StringType,true))),true),
StructField("where",StructType(Array(
StructField("o1",IntegerType,true),
StructField("o2",IntegerType,true))),true)
)
val searchSt = new StructType(searchArr)
val searchData = sqlContext.jsonFile(searchPath, searchSt)
我现在是什么爆炸字段what.q1,它应该包含一个整数数组,但是文档是有限的: http://spark.apache.org/docs/1.4.0/api/java/org/apache/spark/sql/DataFrame.html#explode(java.lang.String,%20java.lang.String,%20scala.Function1,%20scala.reflect.api.TypeTags.TypeTag)
到目前为止,我尝试了几件事,但运气不佳
val searchSplit = searchData.explode("q1", "rb")(q1 => q1.getList[Int](0).toArray())
关于如何在数组上使用爆炸的任何想法/示例?
【问题讨论】:
-
您正在查看的文档是 1.4.0。那是你使用的 spark 版本吗?
标签: scala dataframe explode apache-spark-sql