Scala 如何迭代没有列名称的数据帧记录

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比率等列 我必须遍历每一行,并使

我在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比率等列

我必须遍历每一行,并使用下面的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,只需给出第一部分的答案