Scala 如何迭代没有列名称的数据帧记录
我在HDFS位置有如下格式的数据帧记录,它们没有列名 下面是我使用带制表符分隔的StringBuilder编写的输出Scala 如何迭代没有列名称的数据帧记录,scala,apache-spark,dataframe,spark-dataframe,Scala,Apache Spark,Dataframe,Spark Dataframe,我在HDFS位置有如下格式的数据帧记录,它们没有列名 下面是我使用带制表符分隔的StringBuilder编写的输出 [yahoo.com 899 3 24 0.003 0.026 apple.com 117 5 101 4.245 0.086 testdomain.com 6 6 6 1.0 1.0 ] 上述详细信息描述为MAIL\u ID、TESENT、TEBOUN、TEVET、B\u比率、C\u比率等列 我必须遍历每一行,并使
[yahoo.com 899 3 24 0.003 0.026
apple.com 117 5 101 4.245 0.086
testdomain.com 6 6 6 1.0 1.0
]
上述详细信息描述为MAIL\u ID、TESENT、TEBOUN、TEVET、B\u比率、C\u比率等列
我必须遍历每一行,并使用下面的JSON格式调用外部API
val subJson = new JSONObject();
subJson.put("TS", System.currentTimeMillis());
subJson.put("TESENT","899")
subJson.put("TEBOUN","3")
subJson.put("TEVET","24")
subJson.put("B_RATIO","0.003")
subJson.put("C_RATIO","0.026")
通过使用Subbson,我必须调用外部API
a感谢您的快速帮助。您说过您在hdfs中有制表符分隔的文件,并且希望
迭代每一行并使用以下JSON格式调用外部API
val subJson = new JSONObject();
subJson.put("TS", System.currentTimeMillis());
subJson.put("TESENT","899")
subJson.put("TEBOUN","3")
subJson.put("TEVET","24")
subJson.put("B_RATIO","0.003")
subJson.put("C_RATIO","0.026")
以下架构应该适合您
val devVerRdd = sc.textFile(file path in hdfs)
devVerRdd.map(x => {
val splitted = x.split("\t")
val subJson = new JSONObject();
subJson.put("TS", System.currentTimeMillis());
subJson.put("TESENT",splitted(1))
subJson.put("TEBOUN",splitted(2))
subJson.put("TEVET",splitted(3))
subJson.put("B_RATIO",splitted(4))
subJson.put("C_RATIO",splitted(5))
//nvoke external API here
})
别忘了在转换结束时触发操作我寻找了投票结果并接受了你的答案,我不知道怎么做,请ping我怎么做。你必须提供有关如何从hdfs读取数据的详细信息。如果需要helpval devVerRdd=sc.textFile(/hdfsOutputPath/12.txt),请这样做我将把rdd转换成json,只需给出第一部分的答案