Предположим, я загружаю данные, используя:
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?
Любая помощь очень ценится!