如何找到 d3 选择的基础元素?
我尝试d3.select(elem).node()给出整个节点,而不仅仅是元素。我还检查了(在 v5 中)是否存在_groups,并且我可能会从那里派生该元素。但是有没有更直接的方法呢?
编辑
例如
var svg = d3.select('svg');
renderChart(svg);
...
var g = d3.select('g');
renderChart(g);
function renderChart(element){
// I want to find out here if the element (selection) passed
// is "svg" or a "g", and then take appropriate action
// element.node() is giving me the whole object -- not just that particular element
if (<tbd> == "svg"){
// take action here
}
}
Run Code Online (Sandbox Code Playgroud)
element.node()在上面的例子中返回一个对象。例如,在 的情况下svg,它在 Chrome 控制台中看起来像这样
在我的真实案例中,我有一个必须在 …
我使用 Spark 2.0.1 和 Scala 2.11。
这是一个与 Spark 中用户定义聚合函数(UDAF)相关的问题。我使用此处提供的示例答案来提出我的问题:
import org.apache.spark.sql.expressions._
import org.apache.spark.sql.types._
import org.apache.spark.sql.functions.udf
import org.apache.spark.sql.{Row, Column}
object DummyUDAF extends UserDefinedAggregateFunction {
def inputSchema = new StructType().add("x", StringType)
def bufferSchema = new StructType()
.add("buff", ArrayType(LongType))
.add("buff2", ArrayType(DoubleType))
def dataType = new StructType()
.add("xs", ArrayType(LongType))
.add("ys", ArrayType(DoubleType))
def deterministic = true
def initialize(buffer: MutableAggregationBuffer) = {}
def update(buffer: MutableAggregationBuffer, input: Row) = {}
def merge(buffer1: MutableAggregationBuffer, buffer2: Row) = {}
def evaluate(buffer: Row) = (Array(1L, 2L, 3L), Array(1.0, …Run Code Online (Sandbox Code Playgroud)