Mam dość mocny plik parkietu, w którym muszę zmienić wartości dla jednej z kolumn. Jednym ze sposobów na zrobienie tego byłoby zaktualizowanie tych wartości w źródłowych plikach tekstowych i odtworzenie pliku parkietu, ale zastanawiam się, czy istnieje tańsze i ogólnie łatwiejsze do rozwiązania rozwiązanie.Aktualizowanie wartości w pliku parkietu apache
Odpowiedz
Zacznijmy od podstaw
- parkiet Jeżeli fileformat ale musi być zapisany w systemie.
- Czy dołączono obsługę Parquet. ?
- Czy plik FileSystem (HDFS) zezwala na dołączanie do pliku.
- Nawet jeśli wszystkie są prawdziwe czy ramy pracy (Spark) jest w stanie obsłużyć dołączyć
odpowiada:
parkiet parquet.hadoop.ParquetFileWriter obsługuje tylko tworzyć i nadpisać ale nie append tryb. (Nie jestem pewien, ale może się to zmienić w innej realizacji, projekt parkiet ma wsparcie dopisuje)
HDFS HDFS pozwala na dołączanie plików z użyciem (własność dfs.support.append)
Spark ramy nie obsługuje dołączanie do istniejących pliki parkietowe.
Proszę przejść
http://bytepadding.com/big-data/spark/read-write-parquet-files-using-spark/
http://bytepadding.com/linux/understanding-basics-of-filesystem/
w celu uzyskania szczegółowego zrozumienia.
Dzięki za szczegółową odpowiedź i podstawowe informacje. to jest pomocne – Keith
Musisz ponownie utworzyć plik, to jest sposób Hadoop. Zwłaszcza jeśli plik jest skompresowany.
Innym podejściem (bardzo powszechnym w dużych danych) jest wykonanie aktualizacji w innym pliku Parkietu (lub ORC), a następnie JOIN/UNION w czasie zapytania.
- 1. Dlaczego Apache Spark odczytuje niepotrzebne kolumny parkietu w strukturach zagnieżdżonych?
- 2. Reading DataFrame z partycjonowanym pliku parkietu
- 3. Aktualizowanie pliku YAML w Ruby
- 4. Aktualizowanie pliku właściwości java java
- 5. Aktualizowanie istniejącego pliku Rdata
- 6. Aktualizowanie pliku .settings/org.eclipse.wst.common.component w projekcie maven
- 7. Aktualizowanie paska postępu w pliku RecyclerView
- 8. Generowanie metadanych dla plików parkietu
- 9. Entity Framework: Aktualizowanie pola do wartości pustej?
- 10. Aktualizowanie pliku XML przy użyciu doładowania property_tree
- 11. Aktualizowanie tablicy C podczas odczytu pliku wejściowego
- 12. Ręczne aktualizowanie pliku deponacji Symfony2 w celu uzyskania Doctrine 2.2?
- 13. Lokalizacja pliku logu apache apache AWS na AMI
- 14. Aktualizowanie danych w Clickhouse
- 15. Domyślne wartości parametru makra Apache Velocity
- 16. Jak ustawić nagłówek do wartości z pliku właściwości w Apache Camel
- 17. Jak wydajniej ładować pliki parkietu w Spark (pySpark v1.2.0)
- 18. KnockoutJS - Aktualizowanie ViewModel OnChange wartości textbox zamiast OnBlur Options
- 19. Wykryj wersję Apache w konfiguracji apache?
- 20. Zmiana wartości w pliku machine.config
- 21. Aktualizacja wartości w pliku xml
- 22. iskka: SAXParseException podczas pisania do parkietu na s3
- 23. Scala - XML insert/aktualizowanie
- 24. Aktualizowanie niestandardowej wartości nagłówka dodanej jako DefaultRequestHeaders z HttpClient
- 25. Aktualizacja z AddToSet nie aktualizowanie wartości null z MongoDB C#
- 26. Jak wprowadzić zmiany w pliku httpd.conf apache działającym w kontenerze DOCKER i ponownie uruchomić apache
- 27. MVC model nie aktualizowanie
- 28. Jak sprawdzić, gdzie Apache szuka pliku php.ini?
- 29. Jak ustawić serwer Apache zamiast pliku index.php zamiast pliku index.html?
- 30. Użyj pliku .htaccess na serwerze localhost apache
Nie. Musisz ponownie utworzyć plik. –
@DanOsipov Dzięki. Zakładam, że to ograniczenie wynika z zastosowania różnych algorytmów kompresji, w których nie byłoby łatwo zaktualizować wartości kolumn. –
Powiedziałbym, że jest to o wiele bardziej fundamentalne pytanie, niż pytanie dotyczące parkietu. W świecie dużych ilości danych, w których często używa się parkietu, niezmienność jest czymś, na czym chcielibyście zadbać. Z tej perspektywy chciałbyś załadować dane, przekształcić je, a następnie zapisać ponownie. Można rozważyć tylko zapisanie kolumn, które są potrzebne, co czyni je bardziej wydajnymi, ponieważ jest to format kolumnowy. –