![](/img/trans.png)
[英]Create another dataframe from existing dataframe with different schema in spark
[英]Create another dataframe from existing Dataframe with alias value in spark sql
我正在使用帶有 scala 的 spark 1.6。
我創建了一個 Dataframe,如下所示。
DATA
SKU, MAKE, MODEL, GROUP SUBCLS IDENT
IM, AN4032X, ADH3M032, RM, 1011, 0
IM, A3M4936, MP3M4936, RM, 1011, 0
IM, AK116BC, 3M4936P, 05, ABC, 0
IM, A-116-B, 16ECAPS, RM, 1011, 0
我正在進行數據驗證並捕獲新 dataframe 中違反規則的任何記錄。
規則:
Column “GROUP” must be character
Column “SUBCLS” must be NUMERIC
Column “IDENT” must be 0
新的 Dataframe 看起來像
審核表
SKU MAKE AUDIT_SKU AUDIT_MAKE AUDIT_MODEL AUDIT_GRP AUDIT_SUBCLS Audit_IDENT
IM, A-K12216BC, N, N, N, Y, Y, N
Y 代表違反規則,N 代表規則通過。
我已經使用 isnull 或正則表達式驗證規則,例如:檢查列組使用
regex: df.where( $"GROUP".rlike("^[A-Za-z]}$")).show
有人請幫助我如何在 SPARK SQL 中做到這一點。 是否可以在上述情況下創建 dataframe。
謝謝
您可以將 rlike 與 | 一起使用
scala> df.withColumn("Group1",when($"GROUP".rlike("^[\\d+]|[A-Za-z]\\d+"),"Y").otherwise("N")).withColumn("SUBCLS1",when($"SUBCLS".rlike("^[0-9]"),"N").otherwise("Y")).withColumn("IDENT1",when($"IDENT"==="0","N").otherwise("Y")).show()
+---+-------+--------+-----+------+-----+------+-------+------+
|SKU| MAKE| MODEL|GROUP|SUBCLS|IDENT|Group1|SUBCLS1|IDENT1|
+---+-------+--------+-----+------+-----+------+-------+------+
| IM|AN4032X|ADH3M032| RM| 1011| 0| N| N| N|
| IM|A3M4936|MP3M4936| 1RM| 1011| 0| Y| N| N|
| IM|AK116BC| 3M4936P| 05| ABC| 0| Y| Y| N|
| IM|A-116-B| 16ECAPS| RM1| 1011| 0| Y| N| N|
+---+-------+--------+-----+------+-----+------+-------+------+
只需編寫每列的第 1 版以了解目的,只有您可以覆蓋列。 如果您需要任何幫助,請告訴我。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.