A: построение различий таблицы отчетности
создать таблицу , если не существует текст (
BigInt
) , разделенный на (дт строка)
Формат строки с разделителями полей заканчиваются «\ 001»
места «/ HDFS / текст /»;
создать таблицу , если не существует орка (
BigInt) ,
разделенная на (дт строка)
Формат строки с разделителями полей , заканчивающейся «\ 001»
хранится как оркское
место «/ HDFS / орк /»;
создать таблицу , если не существует паркет (
BigInt) ,
разделенный на (дт строка) в
формате строка с разделителями полей заканчиваются «\ 001» ,
хранящихся в паркетном
месте «/ HDFS / паркет /»;
Является ли на самом деле хранится за это не то же самое, как с
Два: HDFS хранения Сравнение
паркет | орк | текст |
709M | 275M | 1G |
687M | 249M | 1G |
647M | 265M | 1G |
Сравнение времени запроса: Три
паркет | орк | текст |
36,451 | 26,133 | 42,574 |
38,425 | 29,353 | 41,673 |
36,647 | 27,825 | 43,938 |
Четыре: Как подать поколение
Val sparkSession = SparkSession.builder (). getOrCreate () мастер ( "локальный"). APPNAME ( "pushFunnelV3").
Вал javasc = новый JavaSparkContext (sparkSession.sparkContext)
вал nameRDD = javasc.parallelize (util.Arrays.asList (» { 'имя': 'zhangsan', 'возраст': '18'}», "{ 'имя': 'Лиси', 'возраст': '19'}")) РДД;.
sparkSession.read.json (nameRDD) .write.mode (SaveMode.Overwrite) .csv ( "/ данные / аа")
sparkSession.read.json (nameRDD) .write.mode (SaveMode.Overwrite) .orc ( "/ данные / бб ")
sparkSession.read.json (nameRDD) .write.mode (SaveMode.Overwrite) .parquet (" / данные / см ")