DataFrame中show数据时间超时以及GraphFrame无法创建问题

1、在Data Frame中,如果sql语句获取的数据有问题(比如原始数据表中没有day这个字段),
val all_data = sql("select callingnum as src, callednum as dst from cdr where day='20171127'")
之后,进行
all_data.show
会导致任务划分成千个stage,花费还几十分钟都不见得有结果。如果sql语句获取的数据为空,在进行三角计数的时候,原本划分3000stage就可以的程序可能划分30000stage,运行时间极长,且即便运行完毕,结果仍然错误。所以注意,sql语句获取的数据时刻保持准确。

2、

Graph Frame无法创建问题。首先Graph Frame版本仅被spark2.1版本之前支持。如果不是版本的问题,可能提示这种错误:

DataFrame中show数据时间超时以及GraphFrame无法创建问题

DataFrame中show数据时间超时以及GraphFrame无法创建问题

还有可能提示缺少Lazy Logging,或者等等,这种类似问题的解决办法如下:

在spark-shell命令中加上这个参数spark-shell --packages graphframes:graphframes:0.5.0-spark2.1-s_2.11,耐心等待,会出现如下界面:

DataFrame中show数据时间超时以及GraphFrame无法创建问题会下载记下包名,将这些包在http://mvnrepository.com/上下载,并放在spark的jars中,最好集群中的每个结点都要放置这写包。

注意,如果您不是通过spark-shell方法运行程序,或者并不方便这个操作,您可以直接下载缺少的这五个包,然后放在spark的jars中。

注意版本的不同。