用java编写hive的拼接操作时,拼接失败了,查看log报错:Nested exception: java.io.FileNotFoundException: hdfs:/master:9000/export/landMark.xml (没有那个文件或目录)
这里是我java编写的代码,路径写得是new File("/export/landMark.xml"),按道理也没有毛病??
package cn.itcast.telecom.landmark;
import cn.itcast.telecom.entity.LandMark;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
import java.io.File;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
/**
* @author John
* @Date 2022/1/13 10:25
*/
public class LandMarkUtil {
public LandMarkUtil() {
}
public static List<LandMark> parseLandMark() throws DocumentException {
SAXReader reader = new SAXReader();
Document document = null;
document = reader.read(new File("/export/landMark.xml"));//此处需将landMark.xml配置文件上传至jar所在节点的/ export目录下
Element root = document.getRootElement();
List list = root.elements("resourceitem");
List<LandMark> landMarkBeans = new ArrayList();
Iterator i = list.iterator();
while(i.hasNext()) {
Element landMark = (Element)i.next();
LandMark bean = new LandMark();
bean.setLowerLeftLon(Double.valueOf(landMark.element("lowerLeftLon").getText()));
bean.setLowerLeftLat(Double.valueOf(landMark.element("lowerLeftLat").getText()));
bean.setTopRightLon(Double.valueOf(landMark.element("topRightLon").getText()));
bean.setTopRightLat(Double.valueOf(landMark.element("topRightLat").getText()));
bean.setCategory(landMark.element("category").getText());
bean.setLandMarkName(landMark.element("landMarkName").getText());
landMarkBeans.add(bean);
}
return landMarkBeans;
}
public static void main(String[] args) {
LandMarkUtil var1 = new LandMarkUtil();
try {
parseLandMark();
} catch (DocumentException var3) {
var3.printStackTrace();
}
}
}
希望指导指导!!
你的程序不是在root用户下运行的吧
报错的是hdfs路径吧,不是本地路径吧