Когда мы должны использовать createTempView в Apache Spark? - PullRequest
1 голос
/ 09 октября 2019

Предположим, я загружаю данные, используя:

df = spark.read("csv").option("header", "true").option("inferSchema", "true").load("path/to/csv")

Тогда почему мне нужно запустить: df.createTempView("temp_df")? Если это потому, что мне нужно иметь возможность выполнять sql запросов, то я не могу сделать это с помощью: df.selectExpr("sql exp...")?

Я знаю, что df.createTempView("temp_df") создаст таблицу, которую я могу запустить sql выражения против, в сеансе Spark. Сказав это, означает ли это, что созданная таблица распределена по рабочим узлам?

Причина, по которой я спрашиваю, состоит в том, что я хотел бы знать, загружается ли файл csv в программу драйвера, а не рабочие узлы немедленно.

Во-вторых, можно ли разместить данные на рабочих узлах? Если да, то spark.catalog.listTables() даст мне какую-либо информацию об этом кадре данных?

Наконец, как я могу проверить, где хранятся мои данные в любой момент времени? Будь то таблицы данных или таблицы sql?

Любая помощь очень ценится!

...