当我读取一个包含大量文件的数据集(在我的例子中是来自google的数据集)时,spark.read在第一次操作之前会工作很长时间。我不知道它能做什么,但我猜它映射了文件并对它们进行了示例,以推断模式。
我的问题是,是否可以将收集到的有关数据的元数据保存起来并在dataset上的其他工作中重用它。
-更新--
数据排列如下:
gs://bucket-name/table_name/day=yyyymmdd/many_json_files
当我运行:df = spark.read.json("gs://bucket-name/table_name"),这需要很多时间。我希望我能做到以下几点:
df = spark.read.json("gs://bucket-name/table_name")
df.saveMetadata("gs://bucket-name/table_name_metadata") 在另一届会议上:
df = spark.read.metadata("gs://bucket-name/table_name_metadata").json("gs://bucket-name/table_name")
...
<some df manipulation>
...发布于 2017-08-21 07:15:43
如果有很多具有相同模式的文件,我们只需要推断一次模式,并将其用于后面的文件。就像这样。
val df0 = spark.read.json("first_file_we_wanna_spark_to_info.json")
val schema = df0.schema
// for other files
val df = spark.read.schema(schema).json("donnot_info_schema.json")https://stackoverflow.com/questions/45789884
复制相似问题