當前位置:
首頁 > 知識 > 一文讀懂數據質量和驗證檢查

一文讀懂數據質量和驗證檢查

作者:Vinod Kumar

翻譯:季洋

校對:王雨桐

本文約1600字,建議閱讀8分鐘

本文主要講述關於數據質量和驗證檢查的實例,以及運用Apache Spark和Scala採用編碼來確保數據質量是多麼容易。

大數據和機器學習都是和數據打交道。因此,在系統中保持數據的正確性就非常重要。如果數據不準確,不僅僅會降低系統的效率,還會得到一些不恰當的觀點。通過數據質量和驗證是確保數據正確性的重要步驟之一。隨著數據量的不斷增加,雜訊數據也隨之而來,每天都要引入新的方法和檢驗以確保數據的質量。由於數據量巨大,需要考慮的另一件事是如何確保快速處理這些檢查和驗證;例如,一個系統採用高分散式的方法來遍歷每一條進入系統的數據。本文將講述關於數據質量和驗證檢查的一些例子,以及在Apache Spark和Scala的幫助下運用程序來確保數據質量是多麼簡單。

數據準確性:指的是觀測結果和真實值或可接受為真的值之間的接近度。

空值:包含空值(null)的記錄。如: male/female/null

特定值:某公司的ID號。

模式驗證:每一批數據必須遵循相同的列名和數據類型。

同列下的值重複(如記錄中重複的email)

唯一性檢查:各記錄關於某列值是唯一不重複的,這一點和重複性檢查類似。

正確性檢查:可以使用正則表達式進行檢查。例如,我們可以查找包含@的電子郵件id。

數據的普及性:你的數據有多及時?假定每天都有數據進入,隨後要檢查數據並打上時間戳。

數據的質量和驗證檢查的條目可以源源不絕,但是基於Spark和Scala的方法的好處是,用較少的代碼,可以利用海量的數據達到更多目的。

有些時候,一個系統可能有某些特定的需求,這與誰需要這些數據以及以什麼形式數據有關;同時這些數據使用者會對數據提出假設。

數據的可用性:使用者可能對數據有特定要求,如:

列1的值不等於列2的值

列3的值應該等於列1的值加上列2的值

列x的值不應該超過x%的時間

然而這些被看作基本的數據驗證,還有一些更高級別的檢查來確保數據的質量,如:

異常監測:這包括兩個主要方面:

比如給定維度,如基於時間的異常。這意味著在任何指定時間範圍內(時間片段),記錄數不能超過平均值的x%。為了做到這點,運用Spark做法如下:

假定時間片段為1分鐘。

首先,需要對時間戳列進行過濾和格式化處理,如此時間戳才能以分鐘為單位表示出來。這將產生重複,但是這應該不是問題。

接下來,運用groupBy,

如下:

sampledataframe.groupBy("timestamp").count()。

算出平均值,同時找出記錄數超出均值x%的那些時間片段(如果存在的話)。

排序

記錄應該遵循一定的順序。例如,在一天內,某個消費者的數據記錄應該是從產生興趣開始,點擊,載入頁面,加入購物車,最後以購買結束。這些可能只是部分記錄,但它們應該遵循一定的順序。為了檢查順序,運用Spark做法如下:

groupBy("ID") – 以序列號分組

對每一分組運行排序檢查

循環依賴:讓我用一個例子來解釋這點。

如果從列A到列B中取出兩列,記錄如下:

如果應用程序要得到家庭關係結構,這會形成一個環狀依賴關係。

故障趨勢

考慮到每天都有數據進入系統。讓我們設想它的行為或接觸點數據。為了簡單起見,我們將每天的數據稱為一『批』。在每一批數據中,如果我們都會得到一組完全相同的故障,則一定存在跨批次的故障趨勢。

如果故障是源於相同的一組email_id(郵箱號為一列欄位),則這可能是自動程式行為的徵兆。

數據偏倚:這意味著在圖形上數據呈現一個連續的偏差。如:

如果向時間戳上加上30分鐘,那麼所有的記錄都會有這30分鐘的隱形偏倚。如此一來,如果預測演算法想要使用這些數據,這種偏差將影響結果。

如果用來生成這些數據的演算法有學習偏差,那麼對一組數據會生成更多的默認值,隨後用於其他數據。例如基於購買行為,它會預測出錯誤的購買者性別。

自動程式行為:通常,一個自動程式行為如下:

它使用相同的唯一標識符生成記錄。像前文提到的同一組email_id。

它會在任何特定時間生成網路流量。這是基於時間的異常現象。

它生成的記錄有固定順序:跨數據批次的順序檢查。

原文標題:

Data Quality and Validation

https://dzone.com/articles/java-amp-apache-spark-for-data-quality-amp-validat

譯者簡介

季洋,蘇州某IT公司技術總監,從業20年,現在主要負責Java項目的方案和管理工作。對大數據、數據挖掘和分析項目躍躍欲試卻苦於沒有機會和數據。目前正在摸索和學習中,也報了一些線上課程,希望對數據建模的應用場景有進一步的了解。不能成為巨人,只希望可以站在巨人的肩膀上了解數據科學這個有趣的世界。


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 數據派THU 的精彩文章:

《大數據科學與應用系列講座》全新上線!
應對程序員面試,你必須知道的8大數據結構

TAG:數據派THU |