Mam przykładową aplikację do odczytu z plików CSV do ramki danych. Ramka danych może być przechowywana w tabeli Hive w formacie parkietu, przy użyciu metody: .Zapisz ramkę danych Spark jako dynamicznie podzieloną tabelę w Hive
Powyższy kod działa poprawnie, ale mam tyle danych na każdy dzień, że chcę dynamicznie partycjonować tabelę ula na podstawie daty utworzenia (kolumna w tabeli).
czy istnieje sposób na dynamiczną partycję ramki danych i zapisanie jej w magazynie magazynu. Chcesz powstrzymać się od zakodowania instrukcji wstawiania za pomocą hivesqlcontext.sql(insert into table partittioin by(date)....)
.
Pytanie można uznać za rozszerzenie: How to save DataFrame directly to Hive?
każda pomoc jest mile widziane.
Próbowałem tej metody Partitionby. Działa tylko na poziomie RDD, po utworzeniu ramki danych większość metod jest stylizowana na DBMS, np. groupby, orderby, ale nie służą do pisania w różnych folderach partycji w Hive. – Chetandalal
Ok, więc udało się go rozwiązać w wersji 1.4. Tryb df.write(). (SaveMode.Append) .partitionBy ("date"). saveAsTable ("Tablename"); . To jednak zmienia moje pole daty na wartość całkowitą i usuwa aktualną datę. na przykład w kolumnie jest 9 unikalnych dat, ale teraz są one zapisane jako 1,2,3 .... a nazwa folderu to data = 1,2,3, ... zamiast daty = 20141121. Daj mi znać, jeśli istnieje sposób, aby to zrobić. – Chetandalal
@ subramaniam-ramasubramanian: proszę odpowiedzieć na pytanie OP jako odpowiedź zamiast edytować istniejącą odpowiedź –