0Pricing
Scala for Backend Engineering & Functional Programming · Lektion

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.sql or 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.

Alle Lektionen in diesem Kurs

  1. RDDs und DataFrames
  2. Transformationen und Actions
  3. Spark SQL
  4. Aggregationen
← Zurück zu Scala for Backend Engineering & Functional Programming