我是新手,发现了如何转换RDD元素数据类型的问题。我有以下文本文件:
1 2
2 3
3 4
当我创建一个新的RDD时,它默认采用字符串数据类型
val exampleRDD = sc.textFile("example.txt").map(x => (x.split(" ")(0),x.split(" ")(1)))
exampleRDD: org.apache.spark.rdd.RDD[(String, String)] = MapPartitionsRDD[5] at map at <console>:27
但我希望它是RDD [(Int,Int)]。我试过了
val exampleRDD: RDD[(Int,Int)) =sc.textFile("example.txt").map(x => (x.split(" ")(0),x.split(" ")(1)))
但是它给出了错误
错误:未找到:输入RDD
任何帮助都将不胜感激。
答案 0 :(得分:0)
错误“错误:未找到:输入RDD”是因为,您需要将完整的类名称设置为org.apache.spark.rdd.RDD。
但这仍然无法解决问题。要返回Int,您必须将字符串转换为Int。
val exampleRDD = sc.textFile("example.txt").map(x => (x.split(" ")(0).toInt,x.split(" ")(1).toInt))
结果: exampleRDD:org.apache.spark.rdd.RDD [(Int,Int)] = MapPartitionsRDD [36] at map at:34
答案 1 :(得分:0)
#include <Arduino.h>
#include "HC05.h"
#include <SoftwareSerial.h>
HC05 btSerial = HC05(A2, A5, A3, A4); // cmd, state, rx, tx
void setup()
{
DEBUG_BEGIN(57600);
btSerial.findBaud();
}
void loop()
{
btSerial.println("Echo Server- type something");
while (btSerial.connected())
{
if (btSerial.available())
{
btSerial.write(btSerial.read());
}
}
}
如果你有更复杂的格式,使用spark-csv是解析数据的更好选择。