DateFrame.Foreach中拼接的字符串数据丢失

来源:5-4 -C SparkSession的使用

小白学大数据

2019-08-22

var filterWordSb:String="("     
jdbcfilterWordDF.foreach(       x => {        
filterWordSb=filterWordSb + x.getAs("filterWord").toString+")|("        
println(filterWordSb)       }     )
filterWordSb+=")"     
println(filterWordSb)
 为什么最后打印的结果是(),foreach中拼接的全都没了
写回答

4回答

小白学大数据

提问者

2019-08-22

老师我知道原因了,DF是在woker上,filterWordList这个变量是在driver,即使在本地调试也不在一个进程里,所以拿不到,jdbcfilterWordDF.collect().foreach这样就可以了.

1
0

小白学大数据

提问者

2019-08-22

var filterWordList = ListBuffer[String]()
jdbcfilterWordDF.foreach(
  x => {
    filterWordList+=x.getAs("filterWord").toString
  }
)
println(  filterWordList.mkString(","))

换了一种数据类型也是不行

0
0

小白学大数据

提问者

2019-08-22

老师,我想把dateframe中的某一列串起来该怎么写呢?

0
1
Michael_PK
df里面看看有没有什么mkstring,或者借助内置函数concat
2019-08-22
共1条回复

Michael_PK

2019-08-22

你debug进去,如果不行就换种数据类型,看起来像是闭包的原因导致

0
0

以慕课网日志分析为例 进入大数据Spark SQL的世界

快速转型大数据:Hadoop,Hive,SparkSQL步步为赢

1644 学习 · 1129 问题

查看课程