15. 15
Java8 Stream API
MyOperatorの例例
public
class
MyOperator
{
public
boolean
f(Data
data)
{
return
data.getValue()
%
2
==
0;
}
public
Data
m(Data
data)
{
return
new
Data(data.getValue()
+
1);
}
}
19. 19
Java8 Stream API
例例
MyOperator
operator
=
new
MyOperator();
Stream<Data>
s0
=
初期データ;
Stream<Data>
s1
=
s0.filter(operator::f);
Stream<Data>
s2
=
s1.map(operator::m);
List<Data>
out1
=
s2.collect(Collectors.toList());
s0
filter
f
map
m
out1
20. 20
Scala
例例
val
operator
=
new
MyOperator
val
s0
:
Stream[Data]
=
初期データ
val
s1
=
s0.filter(operator.f)
val
s2
=
s1.map(operator.m)
val
out1
=
s2.toSeq
s0
filter
f
map
m
out1
22. 22
Apache Spark
例例
val
sc
=
new
SparkContext(…)
val
operator
=
new
MyOperator
val
s0
:
RDD[Data]
=
sc.初期データ
val
s1
=
s0.filter(operator.f)
val
s2
=
s1.map(operator.m)
s2.saveAsTextFile(”ファイル名”)
※MyOperatorは通常のScalaと全く同じ
s0
filter
f
map
m
out1