[英]Extracting specific string from a column content using Apache spark java
我的 dataframe 中有這個專欄:
+--------------------------------------------------------------------+
| _classname |
+--------------------------------------------------------------------+
|de.abs.org.vertrag.util.test.Elementofthetable |
|de.abs.org.vertrag.util.test.classes.Apachesparkproject |
+--------------------------------------------------------------------+
我想按預期得到 dataframe:
+--------------------------------------------------------------------+
| _classname |
+--------------------------------------------------------------------+
|de.abs.org.vertrag.util.test |
|de.abs.org.vertrag.util.test.classes |
+--------------------------------------------------------------------+
我想擺脫最后一個(。)之后的每個包的類名,這是我的代碼:
teamNamesDf = teamNamesDf.select(col("_classname"), substring_index(col("_classname"), ".\\[^A-Z]+", -1).as("testSuiteName"));
這對我不起作用:(有誰知道如何使用 Apache Spark Java 做到這一點?
你可以試試這個正則表達式,它會在 final 之前提取所有內容.
:
Dataset<Row> result = df.select(regexp_extract(col("_classname"), "^(.*)\\.[^\\.]*$", 1))
另一種方法是使用具有可變長度的substring_index
,該可變長度取決於.
在字符串中:
Dataset<Row> result = df.selectExpr("substring_index(_classname, '.', size(split(_classname, '\\\\.')) - 1)")
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.