我之前使用OFFSET来创建动态命名范围, 然后在图表上使用它,
但是,我还有以下内容来定义命名范围:
=INDIRECT(ADDRESS(MATCH(0,ProFormaCheck!$C$5:$C$108,1)+5,3)&":"&ADDRESS(MATCH(0,ProFormaCheck!$C$5:$C$108,1)+4+COUNTIF(ProFormaCheck!$C$5:$C$108,">"&0),3))
我可以在公式中使用此命名范围,但如果我尝试在图表中使用它,我的计算机每次冻结
是否只能在图表上使用的命名范围内使用特定功能?
答案 0 :(得分:0)
我的问题没有得到完整答案,
但我将命名范围的公式更改为
val mapFields: Map[String, RDD[String]]
var ord: ListMap[String, RDD[String]] = ListMap()
t1.foreach(field => ord = ord ++ Map(field.name -> mapFields(field.name)))
// Note : zip = SparkException: Can only zip RDDs with same number of elements in each partition
//val rdd: RDD[Row] = ord.toSeq.map(_._2.map(s => Seq(s))).reduceLeft((rdd1, rdd2) => rdd1.zip(rdd2).map{ case (l1, l2) => l1 ++ l2 }).map(Row.fromSeq)
val zipRdd = ord.toSeq.map(_._2.map(s => Seq(s)).zipWithIndex().map{ case (d, i) => (i, d) })
val concatRdd = zipRdd.reduceLeft((rdd1, rdd2) => rdd1.join(rdd2).map{ case (i, (l1, l2)) => (i, l1 ++ l2)})
val rowRdd: RDD[Row] = concatRdd.map{ case (i, d) => Row.fromSeq(d) }
val df1 = spark.createDataFrame(rowRdd, t1)
它现在可以在我的图表中使用 因此图表不能像包含以下任何一个的命名区域一样:
ADDRESS
或间接