1. 泛型限定
泛型中的符号
<: >: <% : + -
符号
|
作用
|
[T <: UpperBound]
|
上界
|
[T >: LowerBound]
|
下界
|
[T <% ViewBound]
|
视界
|
[T : ContextBound]
|
上下文界
|
[+T]
|
协变
|
[-T]
|
逆变
|
参考:
https://blog.csdn.net/datadev_sh/article/details/79589238#t4
2. 集合操作符
:: +: :+ ++ ++: :::
这些符号全都是连接的作用,将元素与集合、集合与集合相连接
:: 操作符是右结合的,如9 :: 5 :: 2 :: Nil相当于 9 :: (5 :: (2 :: Nil))。所以 :: +: :::这些操作符都是在前面插入( ++: 除外,为什么?)。:+ ++ ++:这些是追加、拼接。
scala> val a = List(1,2,3)
a: List[Int] = List(1, 2, 3)
scala> val b = List(4,5,6)
b: List[Int] = List(4, 5, 6)
符号
|
操作
|
结果
|
位置
|
解释
|
::
|
a :: b
|
List(List(1, 2, 3), 4, 5, 6)
|
前插
|
把a当成一个元素,前插到b集合
|
+:
|
a +: b
|
List(List(1, 2, 3), 4, 5, 6)
|
前插
|
同上
|
:+
|
a :+ b
|
List(1, 2, 3, List(4, 5, 6))
|
后插
|
把b当成一个元素,后插到a集合
|
++
|
a ++ b
|
List(1, 2, 3, 4, 5, 6)
|
拼接
|
a和b集合顺序合并
|
++:
|
a ++:b
|
List(1, 2, 3, 4, 5, 6)
|
拼接
|
同上
|
:::
|
a::::b
|
List(1, 2, 3, 4, 5, 6)
|
拼接
|
同上
|
参考:
https://blog.csdn.net/datadev_sh/article/details/79587108#t28
3. 数学运算符
+ - * / %
定义函数,
xxx => yyy
左边是函数变量,右边是函数返回值
遍历中的<- 将变量赋给索引
for( i <- arrs )
->方法是所有Scala对象都有的方法,返回一个二元的元组(A,B)
scala> 1 -> 2
res9: (Int, Int) = (1,2)
4. 神奇的下划线 _
参考:
http://blog.csdn.net/i6448038/article/details/50017427
5. _N(下划线数字)
_N用于访问元组的第N个元素(N从1开始算起)。
val pair = (99, "Luftballons")
println(pair._1)
println(pair._2)
Tinga 是一个用于自然语言处理 (NLP) 的
Scala
库。 此外,它还集成了一些机器学习 (ML) 库。 此外,NLP 和 ML 的一些应用程序如情感极性检测(意见挖掘)被集成为 tinga 的模块。 目前我们开发了三个模块:
自然语言处理
自然语言处理
自然语言处理模块有一些用于 NLP 典型任务的基本工具:
文本预处理:删除停用词、变音
符号
和标点
符号
,启用或禁用特定于语言的字符。 目前我们可以处理西班牙语、英语、法语、意大利语和德语。
Tokenizer:在 tinga
中
,基本标记是 Word。 Word 被认为是文本的原子单位。 单词之后是 Sentence 标记,最后是 Paragraph 标记。
Part-of-Speech Tagger:每个单词标记都标有其 PoS 标签。 但是,创建您自己的代币并使用我们的 Brill 的 PoS
创建可以执行各种查询的知识库:
val kb = Set [ Sentence ](
∀( 'p )( 'smokes ( 'p ) implies 'cancer ( 'p )),
∀( 'p )( 'cancer ( 'x ) implies 'dies ( 'p )),
'smokes ( " john " ),
'smokes ( " mary " )
val query1 = kb entails 'dies ( " john " )
一个建立在
scala
上的小型命令行计算器,它接受。
有人在 Ruby
中
发布了等效的版本,并要求任何愿意接受挑战的人使用他们选择的语言编写自己的语言。 由于我不是那种放过在
Scala
中
编写代码的机会的人,因此在复习了我的解析器组合器后,我坐下来写了这篇文章。
要运行它,您需要安装
scala
和 sbt,这在 OSX 上非常简单:
brew install
scala
sbt
然后,从项目目录
中
,运行sbt assembly以生成可执行的 jar,最后,使用计算器:
java -jar ./target/
scala
-2.XX/RPNCalculator-assembly-X.X.jar "3 4 - 5 + 2 *"
或者,您可以使用sbt "run \"3 4 - 5 + 2 *\"" ,使用
Scala
安装直接编译和运行代码。
:: 操作符是右结合的,如9 :: 5 :: 2 :: Nil相当于 9 :: (5 :: (2 :: Nil))。所以 :: +: :::这些操作符都是在前面插入( ++: 除外,为什么?)。:+ ++ ++:这些是追加、拼接。
创建 SparkSessionfrom pyspark.sql import SparkSessionspark = SparkSession.builder \
.appName("Word Count") \
.getOrCreate()构建
sc
from pyspark.sql import SparkSessionspark = SparkSession.builder \
文章目录读取文件数据按行读取按字符读取写入数据
读取文件数据
在
Scala
语言的 Source单例对象
中
中
, 提供了一些非常便捷的方法, 从而使开发者可以快速的从指定数据源(文本文
件, URL地址等)
中
获取数据, 在使用 Source单例对象 之前, 需要先导包, 即 import
scala
.io.Source .
我们可以以 行 为单位, 来读取数据源
中
的数据, 返回值是一个 迭代器类型的对象 . 然后通过 toArray, toList 方 法, 将这些数据放到数组或者列表
中
即可.
object map {
def main(args: Array[String]): Unit = {
val conf = new SparkConf().setAppName("test"...
age =36
//System.currentTimeMillis()是一个方法需要{}
println(s"${System.currentTimeMillis()} $name ’s age is$age")