Mam PySpark RDD zaimportowany z plików JSON. Elementy danych zawierają pewną liczbę wartości, które nie są pożądane. Ze względu na argumenty tylko te znaki, które są string.printable powinny znajdować się w tych plikach JSON.Wyczyść nieprawidłowe znaki z danych przechowywanych w Spark RDD
Biorąc pod uwagę, że istnieje duża liczba elementów, które zawierają informacje tekstowe, próbowałem znaleźć sposób mapowania przychodzącego RDD do funkcji czyszczenia danych i zwracania oczyszczonego RDD jako danych wyjściowych. Mogę znaleźć sposoby drukowania oczyszczonego elementu z RDD, ale nie całą kolekcję elementów i wracam wtedy jako RDD.
Przykładowy dokument może wyglądać tak, jak pokazano poniżej, a niepożądane znaki mogą wkradać się do elementów userAgent, marketingReference i pageTags lub w ogóle do elementów tekstowych.
{
"documentId": "abcdef12-1234-5678-fedc-cba",
"documentType": "contentSummary",
"dateTimeCreated": "2017-01-01T03:00:22.478Z"
"body": {
"requestUrl": "http://www.our-web-site.com/en-gb/line-of-business/product-category/irritating-guid/",
"requestMethod": "GET",
"responseCode": "200",
"userAgent": "Mozilla/5.0 etc",
"requestHeaders": {
"connection": "close",
"host": "www.our-web-site.com",
"accept-language": "en-gb",
"via": "1.1 www.our-web-site.com",
"user-agent": "Mozilla/5.0 etc",
"x-forwarded-proto": "https",
"clientIp": "99.99.99.99",
"referer": "http://www.our-web-site.com/en-gb/line-of-business/product-category/irritating-guid/",
"accept-encoding": "gzip, deflate",
"incap-client-ip": "99.99.99.99"
},
"body": {
"pageId": "/content/our-web-site/en-gb/holidays/interstitial",
"pageVersion": "1.0",
"pageClassification": "product-page",
"pageTags": "spark, python, rdd, other words",
"MarketingReference": "BUYMEPLEASE",
"referrer": "http://www.our-web-site.com/en-gb/line-of-business/product-category/irritating-guid/",
"webSessionId": "abcdef12-1234-5678-fedc-cba"
}
}
}
Czy możesz podać próbkę RDD (np. Używając polecenia rdd.take (5))? – Yaron
Niestety nie z powodu poufności danych. –
Czy możesz udostępnić format RDD, zamiast rzeczywistych wartości możesz użyć "key1", "value1", etc. Interesuje mnie struktura danych, a nie rzeczywista treść. – Yaron