-2
這是幾個小時以來的一個非常瘋狂的問題。我應該如何將字符串轉換爲我的Hadoop映射器中的可寫入對象
任何幫助將不勝感激。
我不能
public void map(Object key, Text value, Context context) throws IOException, InterruptedException {
if (!value.toString().equals("")) {
Gson gson = new Gson();
Boolean flag = true;
System.out.println("000000000");
while(flag){
Text tweetId = new Text();
Tweet tweet = gson.fromJson(value.toString(), Tweet.class);
tweetId.set(tweet.getRetweetStatus().getUser().getId().toString());
System.out.println("Tweet objects:" + tweet.toString());
System.out.println("ParentUserId:" + tweetId);
context.write(tweetId, tweet);
flag = false;
}
Text tweetId = new Text();
Tweet tweet = gson.fromJson(value.toString(), Tweet.class);
tweetId.set(tweet.getUser().getId().toString());
String tweetReverse = (Object) tweet.getRetweetStatus().getUser().getId();
System.out.println("Reverse::");
System.out.println("Tweet objects:" + tweetReverse);
System.out.println("ParentUserId:" + tweetId);
context.write(tweetId, tweetReverse);
}
}
我想String對象「tweetReverse」轉換爲可寫,這樣我可以用它的context.write功能。
這甚至可能嗎?
如果不轉換,我該怎麼辦?
如果我將泛型類型更改爲字符串,那麼還會在將Writable擴展爲讀取和寫入值的類中遇到問題。
任何幫助將不勝感激。
非常感謝。