Databricks依赖的包
在databrikcs上跑代码,最大的好处就是不用麻烦的编译。但是就存在一个问题,就是要自己上传libraries,这个时候版本的选择就成了很大的问题。
一开始我随便的上传了相关的包,然后就是编译不成功,缺三少四的。推荐一个网站,根据下面的compile dependencies来下载你需要的包。注意scala的版本也要选择。
比如说这里,选择了Twitter4j Stream » 4.0.4,下面就会显示,就同时下载所依赖的包,下载同样的版本。
时区不同步的问题
在我折腾了n久终于把包弄对了以后,新的问题出现了。
|
|
说是授权有问题,但是我已经设置好了各种钥匙了啊。所以应该是the system clock is in sync
,时钟不同步的原因吧。
看了一下我现在时间是中午12点,但是databricks上的时间确实上午4点,然后Twitter上我的时区又是US。这差别也太大了吧。
算了一下databricks上的时区应该是london的时间,所以在twitter上把时区改成了london时间。
问题解决!!
java.lang.NoClassDefFoundError: org/apache/spark/Logging
这个问题也是坑了好久,我去搜到了这个logging的包把它也弄上去了,但是还是跑不出结果。
然后看到了这个网页,发现可能是同一个问题。
databricks上默认的Spark版本为2.1.0版本,然而在spark 1.5.2版本之后 org/apache/spark/Logging 已经被移除了。而且在前面下载依赖的那些包还都是1.6.3版本的。好吧还是版本问题
所以在databricks里把版本改成了Spark 1.6.3-db2 (Hadoop 2, Scala 2.10),然后问题就解决了。
总结一下,就是databricks很方便,包的选择要谨慎啊!