2016-10-08 15 views
1

Iがデータを以下含まRDD[String]を有する:スカラRDD [文字列] [文字列、文字列]

データフォーマット:('Movie Name','Actress Name')

('Night of the Demons (2009) (uncredited)', '"Steff", Stefanie Oxmann Mcgaha') 
('The Bad Lieutenant: Port of Call - New Orleans (2009) (uncredited)', '"Steff", Stefanie Oxmann Mcgaha') 
('"Please Like Me" (2013) {All You Can Eat (#1.4)}', '$haniqua') 
('"Please Like Me" (2013) {French Toast (#1.2)}', '$haniqua') 
('"Please Like Me" (2013) {Horrible Sandwiches (#1.6)}', '$haniqua') 

Iは、第一要素としてRDD[String,String]にこれを変換します' 'はRDDの最初の文字列、' 'の2番目の要素はRDDの2番目の文字列になります。あなたが印刷しようとすると、これは に印刷されて重量で、

[Ljava.lang.String;@7741fb9 
[Ljava.lang.String;@225f63a5 
[Ljava.lang.String;@63640bc4 
[Ljava.lang.String;@1354c1de 
+1

これはエラーメッセージではありません。これは、一連の文字列のオブジェクトIDです。 – Malvolio

+0

@Malvolioどうすればそのエラーを取り除くことができますか? – user225508

+0

'split'の結果に' toList'を呼び出します。 – Reactormonk

答えて

5

[Ljava.lang.String;@7741fb9はエラーではありません。

val rdd1 = sc.textFile("/home/user1/Documents/TestingScala/actress" 
val splitRdd = rdd1.map(line => line.split(",")) 
splitRdd.foreach(println) 

それはと私にエラーを与えている:

は、私はこれを試してみましたアレイ。

[ - 単一次元アレイ

L -

@配列内のオブジェクトの種類 - - 配列は、クラスまたはインタフェース

java.lang.Stringが含まが一緒

ストリングを結合します

7741fb9オブジェクトのハッシュコード。

あなたはこのコードを試すことができString arrayを印刷するには:

import scala.runtime.ScalaRunTime._ 
splitRdd.foreach(array => println(stringOf(array))) 

Source

0

それはエラーではありません。 flatMapは、要素(0以上)のリストを返しながら、我々はまた、ここで

val rdd1 = sc.textFile("/home/user1/Documents/TestingScala/actress" 
rdd1.flatMap(line => line.split(",")).foreach(println) 

、混乱を避けるためにここにflatMap()を使用することができ、マップへの入力機能は、単一の要素(配列)を返します。また、flatMapの出力は平坦化されます。

0

フィールドが同梱された&の行が囲まれたCSVファイルなので、正規表現を使用してファイルを読み取る必要があります。単純分割は機能しません。

0

RDD[String]上記ライン

val rdd1 = sc.textFile("/home/user1/Documents/TestingScala/actress" 
val splitRdd = rdd1.map(line => (line.split(",")(0), line.split(",")(1))) 

RDD[String,String]に変換するために、これを試しRDD [Tuple]キー値ペアとしてRDDを返します。

関連する問題