Spark从配置单元中选择还是从文件中选择更好?

uh_*_*boi 7 hive flat-file apache-spark parquet spark-dataframe

我只是想知道人们对于从Hive读取还是从.csv文件,.txt文件,.ORC文件或.parquet文件读取有什么想法。假设基础Hive表是具有相同文件格式的外部表,您想从Hive表中读取还是从基础文件本身中读取,为什么?

麦克风

Jam*_*bin 8

tl; dr:我会直接从实木复合地板文件中读取

我正在使用Spark 1.5.2和Hive 1.2.1对于500万行X 100列表,我记录的一些时间安排是

val dffile = sqlContext.read.parquet("/path/to/parquets/*.parquet")
val dfhive = sqlContext.table("db.table")
Run Code Online (Sandbox Code Playgroud)

dffile计数-> 0.38s; dfhive计数-> 8.99秒

dffile sum(col)-> 0.98s; dfhive sum(col)-> 8.10秒

dffile substring(col)-> 2.63秒; dfhive substring(col)-> 7.77秒

dffile where(col = value)-> 82.59秒; dfhive where(col = value)-> 157.64s

请注意,这些操作是使用较旧版本的Hive和较旧版本的Spark完成的,因此我无法评论两种阅读机制之间如何进行速度改进