我有一个动态生成的字符串.
我需要根据Relational Operator拆分字符串.
为此我可以使用split功能.
现在我还想知道上面提到的正则表达式,基于哪个Relational Operator是实际拆分的字符串.
一个例子,On输入
String sb = "FEES > 200";
Run Code Online (Sandbox Code Playgroud)
应用
List<String> ls = sb.split(">|>=|<|<=|<>|=");
System.out.println("Splitted Strings: "+s);
Run Code Online (Sandbox Code Playgroud)
会给我结果,
Splitted strings: [FEES , 200 ]
Run Code Online (Sandbox Code Playgroud)
但期待结果:
Splitted strings: [FEES , 200 ]
Splitted Relational Operator: >
Run Code Online (Sandbox Code Playgroud) 所以我对正则表达式有点陌生,需要一些帮助。我动态生成了输入字符串,其示例是:
(ACTOR > 0OR(PROC <> NULL AND REVIEW=NULL ANDFERDINAND = NAME ) )
Run Code Online (Sandbox Code Playgroud)
现在我必须替换ORwith |、ANDwith &、=with==和<>with !=,并在没有它们的字符之间提供一个空格。
通常我可以用来string.replace()这样做。但是,由于该语句可以带有或不带有空格,甚至因为AND可以以其他方式出现,如 的情况FERDINAND,我发现它有点困难。
预期结果:
( ACTOR > 0 | ( PROC != NULL & REVIEW == NULL & FERDINAND == NAME ) )
Run Code Online (Sandbox Code Playgroud)
所以我想知道是否有人可以帮助我解决这个问题。提前致谢..
我有 2 个 pyspark 数据框,
i
+---+-----+
| ID|COL_A|
+---+-----+
| 1| 123|
| 2| 456|
| 3| 111|
| 4| 678|
+---+-----+
j
+----+-----+
|ID_B|COL_B|
+----+-----+
| 2| 456|
| 3| 111|
| 4| 876|
+----+-----+
Run Code Online (Sandbox Code Playgroud)
我正在尝试根据特定列的值进行减去i,j即,存在于COL_Aof 中的值i不应存在于COL_Bof 中j。
预期输出应该是,
diff
+---+-----+
| ID|COL_A|
+---+-----+
| 1| 123|
| 4| 678|
+---+-----+
Run Code Online (Sandbox Code Playgroud)
这是我的代码
common = i.join(j.withColumnRenamed('COL_B', 'COL_A'), ['COL_A'], 'leftsemi')
diff = i.subtract(common)
diff.show()
Run Code Online (Sandbox Code Playgroud)
但是输出错误,
diff
+---+-----+
| …Run Code Online (Sandbox Code Playgroud)