我想在一个防暴标记中有条件地分配一个事件处理程序......所以我尝试了以下内容:
hasMobileMsg
但是它认为from pyspark.sql import SparkSession
from pyspark.sql import Window
from pyspark.sql import functions as F
spark = SparkSession.builder.getOrCreate()
df = spark.createDataFrame([(0,1),(1,3),(2,5),(3,4),(4,2)],['t','x'])
df.show()
+---+---+
| t| x|
+---+---+
| 0| 1|
| 1| 3|
| 2| 5|
| 3| 4|
| 4| 2|
+---+---+
w = Window.orderBy('t')
df = df.withColumn('somecol',F.collect_set('x').over(w))
df.show()
+---+---+---------------+
| t| x| somecol|
+---+---+---------------+
| 0| 1| [1]|
| 1| 3| [1, 3]|
| 2| 5| [1, 5, 3]|
| 3| 4| [1, 5, 3, 4]|
| 4| 2|[1, 5, 2, 3, 4]|
+---+---+---------------+
def pct_rank(s,v):
x=sorted(s)
if len(x) == 1:
return float(0)
else:
pc = float(1)/(len(x)-1)
idx = x.index(v)
return float("{0:.2f}".format(idx*pc))
pct_udf = F.udf(pct_rank)
df.select("t","x",pct_udf(df['somecol'],df['x']).alias('pct_rank')).show()
+---+---+--------+
| t| x|pct_rank|
+---+---+--------+
| 0| 1| 0.0|
| 1| 3| 1.0|
| 2| 5| 1.0|
| 3| 4| 0.67|
| 4| 2| 0.25|
+---+---+--------+
/ {{1}}是回调函数......关于如何实现这一点的任何想法?
答案 0 :(得分:2)
Haven没有使用过Riot.js,但看起来你并没有使用普通的JavaScript三元语法。你尝试过这样的语法:
<li class="email__ {active--: showEmail} {disabled--: !hasEmailMsg}"
onClick={hasEmailMsg ? handlePreviewChange('email') : doNothing }
></li>
其中doNothing
只是一个......什么都不做的函数。 (假设你想要的行为)。
我对您的确切设置并不熟悉,但我尝试使用JSFiddle 进行简短演示:https://examples.javacodegeeks.com/android/core/widget/stackview/android-stackview-example/我可以使用三元功能。你可能比我更有机会看到你的代码的相似之处。