Używam "podglądu" Google DataProc Image 1.1 ze Spark 2.0.0. Aby wykonać jedną z moich operacji, muszę wypełnić produkt kartezjański. Od wersji 2.0.0 został utworzony parametr konfiguracyjny iskry (spark.sql.cross Join.enabled), który zakazuje produktów kartezjańskich i zgłoszony wyjątek. Jak ustawić spark.sql.crossJoin.enabled = true, najlepiej za pomocą akcji inicjującej? spark.sql.crossJoin.enabled=true
spark.sql.crossJoin.enabled dla Spark 2.x
Odpowiedz
Aby zmienić domyślne wartości ustawień konfiguracyjnych w Dataproc, nie trzeba nawet akcję startowy, można użyć --properties flag podczas tworzenia klastra z linii poleceń:
gcloud dataproc clusters create --properties spark:spark.sql.crossJoin.enabled=true my-cluster ...
Spark 2.1+
Można użyć crossJoin
:
df1.crossJoin(df2)
To sprawia, że intencją wyraźny i zachowuje bardziej konserwatywne konfiguracji w celu ochrony przed niezamierzonym krzyż łączy.
Spark 2.0
właściwości SQL można ustawić dynamicznie na starcie z RuntimeConfig.set
metody, więc powinieneś być w stanie wywołać
spark.conf.set("spark.sql.crossJoin.enabled", true)
gdy chcesz jawnie zezwolić iloczyn kartezjański.
To działa! Dziękuję Ci! – Stijn
Wygląda na to, że 'crossJoin()' nie jest dostępne w 'DataFrame' /' Dataset' przed isknięciem 2.1. –
@RickHaffey dla wersji wcześniejszych niż Spark 2.1, użyj API 'dataset.join (rightDataset)' z opcją konfiguracji "spark.conf.set (" spark.sql.crossJoin.enabled ", true)'. Ten styl działa również ze Spark 2.1, ale interfejs API .crossJoin jest idealny, ponieważ jest bardziej wyraźny. – Garren
Zbiór rekordów TPCDS testy porównawcze mają zapytania, które zawierają CROSS JOINS
i chyba, że jednoznacznie napiszesz CROSS JOIN
lub dynamicznie ustawisz domyślną właściwość Sparka na true Spark.conf.set("spark.sql.crossJoin.enabled", true)
, wystąpi błąd wyjątku.
Błąd pojawia się w zapytaniach TPCDS 28,61, 88 i 90, ponieważ pierwotna składnia zapytania z Komendy Przetwarzania Transakcji (TPC) zawiera przecinki, a domyślna operacja łączenia Sparka jest połączeniem wewnętrznym. Mój zespół również zdecydował się użyć CROSS JOIN
zamiast zmieniać domyślne właściwości Sparka.
- 1. Apache Spark vs Apache Spark 2
- 2. Pisanie modułu dla Pythona 2.x i 3.x
- 3. Dlaczego partycja Spark RDD ma limit 2 GB dla HDFS?
- 4. Uproszczenie if (x == 1 || x == 2)
- 5. Jak uzyskać x 2 x = 8000?
- 6. JavaFX 2.x TableView lokalizacja
- 7. Sencha dotykowy 2.X Obejście dla HTC One Telefony
- 8. Udostępnianie sesji/plików cookie między subdomenami dla Play 2.X
- 9. jak korzystać z addPreferencesFromResource dla Androida 2.X?
- 10. Android - Sencha Touch 2 Problem PhoneGap dla 4.0.x
- 11. Dla każdego x ... Next Vs. Dla każdego x ... Dalej x
- 12. toFixed (2) runduje "x.525" niekonsekwentnie?
- 13. Skonfiguruj telefon Proxy HTTP dla sieci WIFI na urządzeniach z Androidem 1.x i 2.x
- 14. Jak mogę rozwiązać y = (x + 1) ** 3 -2 dla x w sympy?
- 15. Jak sformatować etykietę zaznaczenia osi X w formacie 2^x?
- 16. Pierwsze Jersey 1.x i 2.x do współistnienia
- 17. Dlaczego (1/2) * x różni się od 0,5 * x?
- 18. Używanie REGEXP w Doctrine 2.x ORM
- 19. Sesje CodeIgniter 2.x i Internet Explorer
- 20. Uzyskaj maksymalną wartość dla każdego klucza w Spark RDD
- 21. Spark saveAsTextFile() powoduje Mkdirs udało się stworzyć dla połowie katalogu
- 22. Nie można uruchomić aplikacji szyn 2.x
- 23. Jak "odzyskać" 3-wymiarowych (2 x 2 x 2) array (sześcian) z 3 dwie macierze wymiarowych (twarze kostki)
- 24. Jak udostępnić Spark RDD między 2 kontekstami Sparka?
- 25. RSpec-2 z Railsami 2.3.x
- 26. Seam 2.x i Hibernate 3.5?
- 27. Sublime Text 2 - OS X Command Line
- 28. Co nowego w maszynie Razor 2.x?
- 29. Mieszanie log4j 1.x i log4j 2
- 30. Czy wątek 2 może drukować "x = 0"?
To działa! Jeszcze raz dziękuję, Dennis! – Stijn