踩坑事件:windows操作系统下的eclipse中编写SparkSQL不能从本地读取或者保存parquet文件

这个大坑... ....

如题,在Windows的eclipse中编写SparkSQL代码时,编写如下代码时,一运行就抛出一堆空指针异常:

复制代码
        // 首先还是创建SparkConf
        SparkConf conf = new SparkConf()
                .setMaster("local")
                .setAppName("HiveDataSource");
        // 创建JavaSparkContext
        JavaSparkContext sc = new JavaSparkContext(conf);
       SQLContext sqlContext=new SQLContext(sc);

      // DataFrame usersDF=sqlContext.read().parquet("hdfs://spark2:9000/francis/spark-core/users.parquet");
       DataFrame usersDF=sqlContext.read().parquet("users.parquet");
复制代码

 

这个纠结啊... ...。

后来将数据保存到hdfs上可以运行。于是我误以为不能再本地保存,后来google了一下,看很多demo都是将数据保存到本地的parquet中,于是这个猜测否决了。

后来在这里找到了答案:http://stackoverflow.com/questions/25505365/parquet-file-in-spark-sql

其回复如下:

Spark is compatible with Windows. You can run your program in a spark-shell session in Windows or you can run it using spark-submit with necessary argument such as "-master" (again, in Windows or other OS). You cannot just run your Spark program as an ordinary Java program in Eclispe without properly setting up the Spark environment and so on. You problem has nothing to do with Windows.

后来又在linux 上的spark-shell上验证了一下,可以本地保存的!!!!

 

所以啊,要想保存在本地,还是使用spark-submit吧,不要直接在eclipse中运行了。

posted @   王宝生  阅读(3169)  评论(0编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· [AI/GPT/综述] AI Agent的设计模式综述
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
点击右上角即可分享
微信分享提示