Scala函数saveAsTextFile()调用出错的解决方法

调用saveAsTextFile函数时,时常会遇到无权写入文本的报错。

程序运行完会建立很多子文件夹,但是最后的文本是空的,如图:

 

对此,我的同学的解决方法是:https://www.cnblogs.com/dreamboy/p/11187541.html

但是很遗憾,我这样做了之后却不可以。

 

于是再咨询过别的同学后,得到的解决方案是:

即只需要添加一下Hadoop环境变量即可。

我用这个方法确实解决了问题,在此给将来遇到该问题的小伙伴提供一点经验。

 

备注:

其实我最后cmd下键入hadoop,又报了新错

JAVA_HOME is not set

但是我没解决这个错就可以写入文件了,所以暂时不急着解决这个问题。

 

### Scala 函数定义与调用 #### 一、函数的定义 在 Scala 中,函数是一种独立于类的对象,可以通过 `val` 或者 `def` 进行定义。以下是两种主要方式: 1. **通过 `val` 定义函数** 使用 `val` 关键字可以将函数视为一个不可变值绑定到某个变量上。这种方式下,函数实际上是一个实现了特定特质(Trait)的对象[^1]。 ```scala val addOne = (x: Int) => x + 1 ``` 2. **通过 `def` 定义方法** 使用 `def` 关键字可以在类或者对象中定义方法。这些方法类似于 Java 中的方法,属于类的一部分。 ```scala def multiply(x: Int, y: Int): Int = { return x * y } ``` #### 二、函数调用 Scala 提供了多种方式进行函数调用,具体取决于函数的定义形式。 1. **对于通过 `val` 定义的函数** 调用时可以直接使用变量名并传递参数即可。 ```scala println(addOne(5)) // 输出 6 ``` 2. **对于通过 `def` 定义的方法** 调用时只需提供方法名以及相应的参数列表。 ```scala println(multiply(3, 4)) // 输出 12 ``` #### 三、匿名函数 除了显式命名的函数外,Scala 支持匿名函数的形式来简化代码结构[^2]。 ```scala // 匿名函数示例 val square = (x: Int) => x * x println(square(4)) // 输出 16 ``` #### 四、函数柯里化 函数柯里化是指将原本接受多个参数的函数转换成一系列只接受单个参数的小型函数的过程。 ```scala def curriedAdd(x: Int)(y: Int): Int = x + y val addTwo = curriedAdd(2)_ println(addTwo(3)) // 输出 5 ``` --- ### 总结 Scala函数设计融合了命令式和函数式的特性,既支持传统的基于类的方法定义,也允许灵活的无状态函数操作。这种灵活性使得开发者可以根据需求选择最合适的实现方式[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值