Spark SQL
Daten abfragen
Spark SQL ist eine kostenlose Scala for Backend Engineering & Functional Programming-Lektion auf CoddyKit. Dies ist Lektion 3 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Scala for Backend Engineering & Functional Programming-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Scala for Backend Engineering & Functional Programming-Kurs umfasst insgesamt 4 Lektionen.
Teile dieser Lektion wurden noch nicht übersetzt und werden auf Englisch angezeigt.
What Is Spark SQL?
Spark SQL lets you query distributed data with standard SQL or a typed DataFrame API. Both go through the same Catalyst optimizer, so they perform identically.
Temporary Views
To run SQL against a DataFrame, register it as a view. createOrReplaceTempView makes it queryable by name for the current session.
val df = Seq(("Alice", 30), ("Bob", 25)).toDF("name", "age")
df.createOrReplaceTempView("people")Running a SQL Query
Use spark.sql with a SQL string. It returns a new DataFrame you can further transform or display.
val adults = spark.sql("SELECT name FROM people WHERE age >= 18")
adults.show()The DataFrame DSL
The same query in the typed DSL. The functions object provides col, comparisons, and many built-in expressions.
import org.apache.spark.sql.functions._
val adults = df.filter(col("age") >= 18).select("name")Selecting and Aliasing
Project columns with select and rename with as / alias. Computed columns use expressions over col.
import org.apache.spark.sql.functions._
df.select(
col("name"),
(col("age") + 1).as("age_next_year")
).show()Filtering Rows
where and filter are synonyms. Combine conditions with && and ||, and use isNull / isNotNull for missing data.
import org.apache.spark.sql.functions._
df.where(col("age") > 20 && col("name").isNotNull).show()Sorting and Limiting
orderBy sorts (use desc for descending), and limit caps the row count returned.
import org.apache.spark.sql.functions._
df.orderBy(col("age").desc).limit(5).show()Joins
Join two DataFrames on a key with join. Specify the join type such as "inner", "left", or "outer".
val joined = orders.join(customers, Seq("customer_id"), "inner")
joined.show()Built-in Functions
The functions package offers hundreds of helpers: upper, concat, when, round, date functions, and more.
import org.apache.spark.sql.functions._
df.withColumn("name_upper", upper(col("name")))
.withColumn("category", when(col("age") >= 30, "senior").otherwise("junior"))
.show()Reading and Writing Tables
Spark SQL reads and writes many formats. Parquet is columnar and efficient; saveAsTable persists to the metastore.
val data = spark.read.parquet("input.parquet")
data.write.mode("overwrite").parquet("output.parquet")Plain Scala SQL-like Query
A self-contained analog: querying an in-memory collection with collection methods mirrors a Spark SQL SELECT/WHERE.
object Main {
case class Person(name: String, age: Int)
def main(args: Array[String]): Unit = {
val people = Seq(Person("Alice", 30), Person("Bob", 25))
val adults = people.filter(_.age >= 18).map(_.name)
println(adults.mkString(", "))
}
}Quick Check
What must you do to a DataFrame before querying it with spark.sql("SELECT ...")?
Recap
You queried data with Spark SQL:
- register views with
createOrReplaceTempView - run SQL via
spark.sqlor the DataFrame DSL select,where,orderBy,join- built-in functions and Parquet I/O
Next: aggregations.
Häufig gestellte Fragen
Ist die Lektion „Spark SQL“ kostenlos?
Ja — der vollständige Text von „Spark SQL“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Scala for Backend Engineering & Functional Programming-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Scala for Backend Engineering & Functional Programming-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „Spark SQL“?
Daten abfragen Du übst Scala for Backend Engineering & Functional Programming mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um Scala for Backend Engineering & Functional Programming zu starten?
Keine Vorkenntnisse erforderlich. Scala for Backend Engineering & Functional Programming auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 3 von 4.
Wie lange dauert die Lektion „Spark SQL“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser Scala for Backend Engineering & Functional Programming-Lektion Code schreiben und ausführen?
Ja. Jede Scala for Backend Engineering & Functional Programming-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.