split()函数在spark中做什么

时间:2019-04-28 14:06:35

标签: scala apache-spark

我有一个包含示例数据的数据文件

Pune|020|WA

以此类推。

我正在将数据加载到RDD中,然后运行一个map函数,在其中发送一个split函数。我期望行被单词分割。 例如。

val testRDD = sc.textFile("file.txt");
val splitRDD = testRDD.map(x => x.split("|"))

我在newRDD中期望的值是:

Pune
020
WA

我获得的价值是-P,u,n,e,0,2,0,W,A

请帮助解释 另外,当我尝试使用splitRDD.foreach(println)打印RDD时 我得到的值是

[Ljava.lang.String;@19e7bf4a
[Ljava.lang.String;@3dbfa08f
[Ljava.lang.String;@6fc62bf4
[Ljava.lang.String;@3b6fd980
[Ljava.lang.String;@2c3080fc
val testRDD = sc.textFile("file.txt");
val newRDD = testRDD.map(x => x.split("|"))

1 个答案:

答案 0 :(得分:1)

Java中的方法//Take calendar object which represents now(this moment) Calendar nowCal = Calendar.getInstance(); calendar.setTimeInMillis(System.currentTimeInMillis()); //Take calendar object which represents last log in SharedPreferences shared = getSharedPreferences("file_pref", MODE_PRIVATE); Long value_long = shared.getLong("last_log_in",0); Calendar lastLogInCal = Calendar.getInstance(); calendar.setTimeInMillis(value_long); //Then write some code with if statements and make sure the conditions you want are met! //If conditions are met, don't forget to update the long value in SharedPreferences. 接受正则表达式。 Pipe character split在正则表达式中具有特殊含义,因此,为了使拆分工作正常进行,您必须对管道进行转义:

|

第二个问题与Java对数组的testRDD.map(x => x.split("\\|")) // Pune, 020, WA 的实现有关,这不是很有帮助。 显示数组内容的最简单方法是仅使用toString来制作字符串:

mkString