_spark_metadata目录的用途是什么

时间:2019-02-17 18:29:08

标签: apache-spark

我正在努力弄清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上运行任何查询(还是我应该说该查询没有做任何有用的事情)?

0 个答案:

没有答案