我有一个节点,如:
<div>
<svg ...>
<g class="graph">
<path class="myarea" d="...AAA..." pos="p1"> </path>
</g>
<g class="graph">
<path class="myarea" d="...BBB..." pos="p2"> </path>
</g>
<g class="graph">
<path class="myarea" d="...CCC..." pos="p3"> </path>
</g>
/svg>
</div>
Run Code Online (Sandbox Code Playgroud)
我正在尝试选择具有属性的特定节点(例如 where d="...BBB...") pos='p2'
d3.selectAll(".myarea").each(function(d,i) {
console.log("-> ", d3.select(this).attr("pos"), d3.select(this).attr("pos") == 'p2' );
});
Run Code Online (Sandbox Code Playgroud)
这将产生/返回一个包含所有 3 个条目的数组:
-> p0 假
-> p1 真
-> p2 假
-> [数组(3)]
我有兴趣只选择一个,在这种情况下选择一个,.attr("pos") == 'p2'
所以我只想返回一个元素。
我试着map()
和filter()
,但没有成功。
根据属性值选择特定元素的正确方法是什么?
如何df
使用分区的Spark计算列中String的出现次数id
?
例如,找到a "test"
列"name"
中的值df
在SQL中将是:
SELECT
SUM(CASE WHEN name = 'test' THEN 1 else 0 END) over window AS cnt_test
FROM
mytable
WINDOW window AS (PARTITION BY id)
Run Code Online (Sandbox Code Playgroud)
我试过用了 map( v => match { case "test" -> 1.. })
和类似的东西:
def getCount(df: DataFrame): DataFrame = {
val dfCnt = df.agg(
.withColumn("cnt_test",
count(col("name")==lit('test'))
)
Run Code Online (Sandbox Code Playgroud)
这是一项昂贵的操作吗?什么是检查特定字符串出现然后执行操作的最佳方法(sum, max, min, etc)
?
谢谢
我正在加入两个DataFrame,其中有一种类型的列 Map[String, Int]
我希望合并的DF有一个空的映射,[]
而不是null
在Map
类型列上。
val df = dfmerged.
.select("id"),
coalesce(col("map_1"), lit(null).cast(MapType(StringType, IntType))).alias("map_1"),
coalesce(col("map_2"), lit(Map.empty[String, Int])).alias("map_2")
Run Code Online (Sandbox Code Playgroud)
对于map_1
列,null
将插入a,但是我想使用一个空的map
map_2给我一个错误:
java.lang.RuntimeException:不支持的文字类型类scala.collection.immutable.Map $ EmptyMap $ Map()
我也尝试过使用udf
类似的功能:
case class myStructMap(x:Map[String, Int])
val emptyMap = udf(() => myStructMap(Map.empty[String, Int]))
Run Code Online (Sandbox Code Playgroud)
也没有用。
当我尝试类似的东西:
.select( coalesce(col("myMapCol"), lit(map())).alias("brand_viewed_count")...
要么
.select(coalesce(col("myMapCol"), lit(map().cast(MapType(LongType, LongType)))).alias("brand_viewed_count")...
我得到错误:
由于数据类型不匹配而无法解析“ map()”:无法将MapType(NullType,NullType,false)强制转换为MapType(LongType,IntType,true);
apache-spark ×2
dataframe ×2
scala ×2
aggregate ×1
d3.js ×1
dictionary ×1
filter ×1
javascript ×1
node.js ×1