Our Community is getting an upgrade! To get everything ready for the relaunch, we’ll be placing the site in read-only mode starting September 21st.
We really appreciate your understanding while we get things set up behind the scenes. Catch up on all the exciting details about the move here.
Need help or have questions? Drop us a line at [email protected]

Archives of Support Questions (Read Only)

This is an archived board for historical reference. Information and links may no longer be available or relevant
Announcements
This board is archived and read-only for historical reference. To ask a new question, please post a new topic on the appropriate active board.

Spark Scala - Join multiple files using Spark

avatar
Rising Star
Hi, Everytime that I run my Pig Script it generates a multiple files in HDFS (I never know the number). I need to do some anlytics using Spark. How can I join that multiple files to have only one file like:
  1. val data = sc.textFile("PATH/Filejoined"); Thanks!
1 ACCEPTED SOLUTION

avatar
Super Collaborator

@Pedro Rodgers

you can get your multiple files into a Spark RDD with:

val data = sc.textFile("/user/pedro/pig_files/*txt")

or even

val data = sc.textFile("/user/pedro/pig_files")

From this point onwards the Spark RDD 'data' will have as many partitions as there are pig files. Spark is just as happy with that, since distributing the data brings more speed and performance to anything you want to do on that RDD.

Now if you want to merge those files into one and rewrite to HDFS again, it is just:

data.repartition(1).saveAsTextFile("/user/pedro/new_file_dir") 

You can not determine the name of the output file (easily), just the HDFS folder will do

Hope this helps

View solution in original post

1 REPLY 1

avatar
Super Collaborator

@Pedro Rodgers

you can get your multiple files into a Spark RDD with:

val data = sc.textFile("/user/pedro/pig_files/*txt")

or even

val data = sc.textFile("/user/pedro/pig_files")

From this point onwards the Spark RDD 'data' will have as many partitions as there are pig files. Spark is just as happy with that, since distributing the data brings more speed and performance to anything you want to do on that RDD.

Now if you want to merge those files into one and rewrite to HDFS again, it is just:

data.repartition(1).saveAsTextFile("/user/pedro/new_file_dir") 

You can not determine the name of the output file (easily), just the HDFS folder will do

Hope this helps