scala:foreachpartition将对象类型而不是iterator[row]传递给方法

zd287kbt  于 2021-05-27  发布在  Spark
关注(0)|答案(1)|浏览(591)

我刚到斯卡拉。我试着用 foreachPartition 在分区Dataframe上。我在试着调用一个方法( makePreviewApiCall )内部 foreachPartition .
以下是被调用方法的签名:

def makePreviewApiCall(
  partitioned_df:Iterator[Row],
  header_df:DataFrame, 
  sqlcontext:SQLContext): Unit = {...}

我尝试从foreachpartition调用上述方法,如下所示:

partitioned_df.foreachPartition(rddpartition => makePreviewApiCall(rddpartition, header_df, sqlcontext))

我得到的构建错误如下:

found   : Object
required: Iterator[org.apache.spark.sql.Row]
one error found

这里怎么了? rddpartition 属于类型 Iterator[Row] . 为什么要把它当作 Object ?

jaql4c8m

jaql4c8m1#

看起来现有的两个方法(scala特定的和java特定的)与scala2.12冲突,而scala2.11没有冲突。您可以在lambda中像

.foreachPartition((part: Iterator[Row]) => {

相关问题