我编写了一个简单的程序来加入HDFS中的订单和order_items文件。
我的代码来读取数据:
val orders = sc.textFile ("hdfs://quickstart.cloudera:8022/user/root/retail_db/orders/part-00000")
val orderItems = sc.textFile ("hdfs://quickstart.cloudera:8022/user/root/retail_db/order_items/part-00000")
我得到以下例外:
**Exception in thread "main" java.lang.IllegalArgumentException: Wrong FS: hdfs://quickstart.cloudera:8020/user/root/retail_db, expected: file:///**
你能告诉我这个问题吗?谢谢!
答案 0 :(得分:2)
您目前正在使用Cloudera Quickstart VM,这很可能意味着您正在运行Spark 1.6,因为这些是可以直接从Cloudera Manager安装的包裹以及CDH 5.x的默认版本
如果是这种情况,Spark on Yarn默认指向HDFS,因此您无需指定 hdfs 。
只需这样做:
val orderItems = sc.textFile ("/user/cloudera/retail_db/order_items/part-00000")
注意我也改为/ user / cloudera。确保您当前的用户具有权限。
hdfs:// 仅在您使用Spark standalone
时才有效