что такое использование каталога _spark_metadata - PullRequest
0 голосов
/ 17 февраля 2019

Я пытаюсь понять, как работает потоковая передача в spark.

У меня есть файл в каталоге /data/flight-data/csv/.Он имеет следующие данные:

DEST_COUNTRY_NAME   ORIGIN_COUNTRY_NAME count
United States       Romania             15
United States       Croatia             1
United States       Ireland             344
Egypt               United States       15  

Я подумал проверить, что произойдет, если я прочитаю файл как поток, а не как пакет.Сначала я создал Dataframe, используя read

scala> val dataDF = spark.read.option("inferSchema","true").option("header","true").csv("data/flight-data/csv/2015-summary.csv");
[Stage 0:>                                                                                                            dataDF: org.apache.spark.sql.DataFrame = [DEST_COUNTRY_NAME: string, ORIGIN_COUNTRY_NAME: string ... 1 more field]

, затем взял схему из него и создал новый Dataframe

scala> val staticSchema = dataDF.schema;
staticSchema: org.apache.spark.sql.types.StructType = StructType(StructField(DEST_COUNTRY_NAME,StringType,true), StructField(ORIGIN_COUNTRY_NAME,StringType,true), StructField(count,IntegerType,true))

scala> val dataStream = spark.readStream.schema(staticSchema).option("header","true").csv("data/flight-data/csv");
dataStream: org.apache.spark.sql.DataFrame = [DEST_COUNTRY_NAME: string, ORIGIN_COUNTRY_NAME: string ... 1 more field]

Затем я запустил поток.Путь для контрольной точки и вывода (я полагаю) - это каталог `/ home / manu / test", который изначально пуст.

scala> dataStream.writeStream.option("checkpointLocation","home/manu/test").start("/home/manu/test");
res5: org.apache.spark.sql.streaming.StreamingQuery = org.apache.spark.sql.execution.streaming.StreamingQueryWrapper@5c7df5f1

Возвращаемое значение start равно StreamingQuery, которое я прочитал:A handle to a query that is executing continuously in the background as new data arrives. All these methods are thread-safe.

Я заметил, что теперь в каталоге есть каталог _spark_metadata, но больше ничего нет.

Вопрос1 - Что такое каталог _spark_metadata? Я заметил, что он пуст.он использовался для?

Вопрос 2. Больше ничего не происходит. Это потому, что я не выполняю никаких запросов к Dataframe dataStream (или я должен сказать, что запрос неделать что-нибудь полезное)?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...