Я настоятельно рекомендую вам перестать делать следующее:
year
|---Month
|----monthlydata.parquet
|----Day
|---dailydata.parquet
Когда вы читаете year/month/
или даже просто year/
, вы не просто получите monthlydata.parquet
, вы также получите dailydata.parquet
. Я не могу много говорить об ошибке, которую вы получаете (пожалуйста, опубликуйте ее), но я скромно предлагаю разделить пути в HDFS, поскольку вы уже дублируете данные:
dailies
|---year
|---Month
|----Day
|---dailydata.parquet
monthlies
|---year
|---Month
|----monthlydata.parquet
Есть ли причина, по которой вы держите их в одних и тех же каталогах?
Однако, если вы настаиваете на этой структуре, используйте что-то вроде этого:
schema = "dailydata1"
val dfList = dates.map { case (month, day) =>
Try(sqlContext.read.parquet(s"/hdfs/table/month=$month/day=$day/$schema.parquet"))
}
val dfUnion = dfList.collect { case Success(v) => v }.reduce { (a, b) =>
a.unionAll(b)
}
Где вы можете переключать schema
между dailydata1
, dailydata2
и т. Д.
person
jackar
schedule
30.03.2017