我是Apache Spark的新手.我实际上希望专注于基本的Spark API规范,并希望使用Spark API来理解和编写一些程序.我用Apache Spark编写了一个java程序来实现Joins概念.
当我使用Left Outer Join - leftOuterJoin()或Right Outer Join - rightOuterJoin()时,这两个方法都返回一个包含特殊类型Google Options的JavaPairRDD.但我不知道如何从Optional类型中提取原始值.
无论如何我想知道我可以使用相同的连接方法,以我自己的格式返回数据.我没有找到任何办法.意思是当我使用Apache Spark时,我无法以我自己的风格自定义代码,因为他们已经给出了所有预定义的东西.
请在下面找到代码
my 2 sample input datasets
customers_data.txt:
4000001,Kristina,Chung,55,Pilot
4000002,Paige,Chen,74,Teacher
4000003,Sherri,Melton,34,Firefighter
and
trasaction_data.txt
00000551,12-30-2011,4000001,092.88,Games,Dice & Dice Sets,Buffalo,New York,credit
00004811,11-10-2011,4000001,180.35,Outdoor Play Equipment,Water Tables,Brownsville,Texas,credit
00034388,09-11-2011,4000002,020.55,Team Sports,Beach Volleyball,Orange,California,cash
00008996,11-21-2011,4000003,121.04,Outdoor Recreation,Fishing,Colorado Springs,Colorado,credit
00009167,05-24-2011,4000003,194.94,Exercise & Fitness,Foam Rollers,El Paso,Texas,credit
Run Code Online (Sandbox Code Playgroud)
这是我的Java代码
**SparkJoins.java:**
public class SparkJoins {
@SuppressWarnings("serial")
public static void main(String[] args) throws FileNotFoundException {
JavaSparkContext sc = new JavaSparkContext(new SparkConf().setAppName("Spark Count").setMaster("local"));
JavaRDD<String> customerInputFile = sc.textFile("C:/path/customers_data.txt");
JavaPairRDD<String, String> customerPairs = customerInputFile.mapToPair(new …
Run Code Online (Sandbox Code Playgroud) 我必须JavaSchemaRDD
通过一些WHERE
条件更新一些新值.
这是我要转换为Spark SQL的SQL查询:
UPDATE t1
SET t1.column1 = '0', t1.column2 = 1, t1.column3 = 1
FROM TABLE1 t1
INNER JOIN TABLE2 t2 ON t1.id_column = t2.id_column
WHERE (t2.column1 = 'A') AND (t2.column2 > 0)
Run Code Online (Sandbox Code Playgroud)