2015-07-21 13 views
6

Patrzę na dokumentację spark.sql.DataFrame.Użycie iskry DataFrame "jako" metoda

Jest

def as(alias: String): DataFrame 
    Returns a new DataFrame with an alias set. 
    Since 
     1.3.0 

Jaki jest cel tej metody? Jak to jest używane? Czy może istnieć przykład?

Nie udało mi się znaleźć nic na temat tej metody w Internecie, a dokumentacja jest całkiem nieistniejąca. Nie udało mi się stworzyć żadnego aliasu przy użyciu tej metody.

Odpowiedz

14

zapłonowa < = 1,5

Jest mniej więcej równoważne SQL tabeli aliasach:

SELECT * 
FROM table AS alias; 

przykład użycia adaptacja PySpark alias documentation:

import org.apache.spark.sql.functions.col 
case class Person(name: String, age: Int) 

val df = sqlContext.createDataFrame(
    Person("Alice", 2) :: Person("Bob", 5) :: Nil) 

val df_as1 = df.as("df1") 
val df_as2 = df.as("df2") 
val joined_df = df_as1.join(
    df_as2, col("df1.name") === col("df2.name"), "inner") 
joined_df.select(
    col("df1.name"), col("df2.name"), col("df2.age")).show 

wyjściowa:

+-----+-----+---+ 
| name| name|age| 
+-----+-----+---+ 
|Alice|Alice| 2| 
| Bob| Bob| 5| 
+-----+-----+---+ 

samo zapytanie za pomocą SQL:

df.registerTempTable("df") 
sqlContext.sql("""SELECT df1.name, df2.name, df2.age 
        FROM df AS df1 JOIN df AS df2 
        ON df1.name == df2.name""") 

Jaki jest cel tej metody?

Dosyć unikałem dwuznacznych odnośników do kolumn.

Spark 1.6 +

Jest też nowy as[U](implicit arg0: Encoder[U]): Dataset[U] która służy do przekształcania DataFrame Do DataSet danego typu. Na przykład:

df.as[Person] 
+0

Dziękuję. Odniosłem wrażenie, że w jakiś sposób używa się go do aliasingu kolumn. Opublikuję pytanie o to. –

Powiązane problemy