我尝试过此查询以从 linkedin 数据中获取所需的经验。
Dataset<Row> filteredData = spark
.sql("select full_name ,experience from (select *, explode(experience['title']) exp from tempTable )"
+ " a where lower(exp) like '%developer%'");
但是我收到了这个错误:
最后我尝试了,但我得到了更多同名的行。
Dataset<Row> filteredData = spark
.sql("select full_name ,explode(experience) from (select *, explode(experience['title']) exp from tempTable )"
+ " a where lower(exp) like '%developer%'");
请给我提示,如何将同一列中的字符串数组转换为逗号分隔的字符串。
最佳答案
您可以应用UDF来制作逗号分隔的字符串
像这样创建UDF
def mkString(value: WrappedArray[String]): String = value.mkString(",")
在sparkSQL上下文中注册UDF
sqlContext.udf.register("mkstring", mkString _)
将其应用于SparkSQL查询
sqlContext.sql(select mkstring(columnName) from tableName)
它将返回数组的逗号分隔值
关于java - 如何在spark sql中将json数组<String>转换为csv,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39634284/