Jestem nowy w Spark i Spark SQL.Jak działa createOrReplaceTempView w Spark?
Jak działa createOrReplaceTempView
w Spark?
Jeśli zarejestrujemy RDD
obiektów jako stół, to spowoduje to zapisanie wszystkich danych w pamięci?
Jestem nowy w Spark i Spark SQL.Jak działa createOrReplaceTempView w Spark?
Jak działa createOrReplaceTempView
w Spark?
Jeśli zarejestrujemy RDD
obiektów jako stół, to spowoduje to zapisanie wszystkich danych w pamięci?
createOrReplaceTempView
tworzy (lub zastępuje, jeśli nazwa tego widoku już istnieje) leniwie oceniony "widok", który można następnie użyć jak tabeli ula w Spark SQL. Nie ma ona wartości , a nie, dopóki pamięć podręczna nie zostanie zapisana w widoku.
scala> val s = Seq(1,2,3).toDF("num")
s: org.apache.spark.sql.DataFrame = [num: int]
scala> s.createOrReplaceTempView("nums")
scala> spark.table("nums")
res22: org.apache.spark.sql.DataFrame = [num: int]
scala> spark.table("nums").cache
res23: org.apache.spark.sql.Dataset[org.apache.spark.sql.Row] = [num: int]
scala> spark.table("nums").count
res24: Long = 3
Dane są buforowane w pełni dopiero po wywołaniu .count
. Oto dowód, że został buforowane:
Podobne SO: spark createOrReplaceTempView vs createGlobalTempView
Stosowna cytat (w porównaniu do uporczywego tabeli): „W przeciwieństwie do polecenia createOrReplaceTempView, saveAsTable zmaterializuje zawartości DataFrame i utworzyć wskaźnik do danych w metastorze Hive. " z https://spark.apache.org/docs/latest/sql-programming-guide.html#saving-to-persistent-tables
Uwaga: createOrReplaceTempView
dawniej registerTempTable
CreateOrReplaceTempView utworzy tymczasowy widok tabeli na pamięć nie jest presistant w tej chwili, ale można uruchomić sql zapytanie na początku tego. jeśli chcesz go zapisać, możesz kontynuować lub użyć saveAsTable do zapisania.
najpierw odczytać dane w formacie CSV, a następnie przekonwertować do ramki danych i utworzyć widok Temp
Odczyt danych w formacie CSV
val data = spark.read.format("csv").option("header","true").option("inferSchema","true").load("FileStore/tables/pzufk5ib1500654887654/campaign.csv")
drukowanie schematu
data.printSchema
data.createOrReplaceTempView("Data")
Teraz możemy uruchomić sql zapytania na wierzchu widok tabeli po prostu stworzony
%sql select Week as Date,Campaign Type,Engagements,Country from Data order by Date asc
Czy to 'view' tworzenia tabeli tymczasowej? I czy "widok" ma jakąś konkretną nazwę w Spar jak tablica ula? –
Tak, jest to praktycznie tabela, z tym wyjątkiem, że musi zostać oszacowana, ponieważ nie została zmaterializowana do plików. Możesz użyć widoku tak, jak zrobiłbyś tabelę ula (na przykład w surowym zapytaniu SQL). – Garren
W przeciwieństwie do tradycyjnego stołu tymczasowego, widok temp nie jest w ogóle zmaterializowany, nawet w pamięci. Przydaje się do uzyskiwania dostępu do danych w SQL, ale rozumie, że jego stwierdzenia muszą być oceniane KAŻDY czas, w którym jest on dostępny – Garren