Removing nulls while mapping a JavaRDD
I am developing a Java + Apache Spark application. One of its funcionalities is to trim Strings. For example:
// Having JavaSparkContext jsc previously defined and a function like
// the following already defined:
private String trim(String s, int charsToTrim);
// that returns a new String with length = s.length() - charsToTrim or
// null if its new length is <= 0
JavaRDD<String> original = jsc.parallelize(Arrays.asList("aaa", "bbbb", "ccccc");
int num = 4;
JavaRDD<String> mapped = original.map(s -> trim(s, num));
The new JavaRDD mapped will contain (null, null, "c"), and I will have to clean null values with a filter.
The question I have is: Is there any way to remove those values while doing the map or to don't return any value at while mapping all if the result is null?
Thank you.
java apache-spark null
add a comment |
I am developing a Java + Apache Spark application. One of its funcionalities is to trim Strings. For example:
// Having JavaSparkContext jsc previously defined and a function like
// the following already defined:
private String trim(String s, int charsToTrim);
// that returns a new String with length = s.length() - charsToTrim or
// null if its new length is <= 0
JavaRDD<String> original = jsc.parallelize(Arrays.asList("aaa", "bbbb", "ccccc");
int num = 4;
JavaRDD<String> mapped = original.map(s -> trim(s, num));
The new JavaRDD mapped will contain (null, null, "c"), and I will have to clean null values with a filter.
The question I have is: Is there any way to remove those values while doing the map or to don't return any value at while mapping all if the result is null?
Thank you.
java apache-spark null
add a comment |
I am developing a Java + Apache Spark application. One of its funcionalities is to trim Strings. For example:
// Having JavaSparkContext jsc previously defined and a function like
// the following already defined:
private String trim(String s, int charsToTrim);
// that returns a new String with length = s.length() - charsToTrim or
// null if its new length is <= 0
JavaRDD<String> original = jsc.parallelize(Arrays.asList("aaa", "bbbb", "ccccc");
int num = 4;
JavaRDD<String> mapped = original.map(s -> trim(s, num));
The new JavaRDD mapped will contain (null, null, "c"), and I will have to clean null values with a filter.
The question I have is: Is there any way to remove those values while doing the map or to don't return any value at while mapping all if the result is null?
Thank you.
java apache-spark null
I am developing a Java + Apache Spark application. One of its funcionalities is to trim Strings. For example:
// Having JavaSparkContext jsc previously defined and a function like
// the following already defined:
private String trim(String s, int charsToTrim);
// that returns a new String with length = s.length() - charsToTrim or
// null if its new length is <= 0
JavaRDD<String> original = jsc.parallelize(Arrays.asList("aaa", "bbbb", "ccccc");
int num = 4;
JavaRDD<String> mapped = original.map(s -> trim(s, num));
The new JavaRDD mapped will contain (null, null, "c"), and I will have to clean null values with a filter.
The question I have is: Is there any way to remove those values while doing the map or to don't return any value at while mapping all if the result is null?
Thank you.
java apache-spark null
java apache-spark null
asked Nov 19 '18 at 22:26
Roi G.Roi G.
33
33
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
To remove or filter some values you can always use .filter
over an RDD.
But you can not use .map
for skipping the elements or filtering them. However, you can use flatMap
method here which supports the intended functionality. Try the following line in your code:
mapped.flatMap(x -> Arrays.asList((x == null)? (new String[0]) : (new String{x})).iterator());
Thank you so much, that gave me the hint I needed!
– Roi G.
Nov 20 '18 at 21:40
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53383544%2fremoving-nulls-while-mapping-a-javardd%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
To remove or filter some values you can always use .filter
over an RDD.
But you can not use .map
for skipping the elements or filtering them. However, you can use flatMap
method here which supports the intended functionality. Try the following line in your code:
mapped.flatMap(x -> Arrays.asList((x == null)? (new String[0]) : (new String{x})).iterator());
Thank you so much, that gave me the hint I needed!
– Roi G.
Nov 20 '18 at 21:40
add a comment |
To remove or filter some values you can always use .filter
over an RDD.
But you can not use .map
for skipping the elements or filtering them. However, you can use flatMap
method here which supports the intended functionality. Try the following line in your code:
mapped.flatMap(x -> Arrays.asList((x == null)? (new String[0]) : (new String{x})).iterator());
Thank you so much, that gave me the hint I needed!
– Roi G.
Nov 20 '18 at 21:40
add a comment |
To remove or filter some values you can always use .filter
over an RDD.
But you can not use .map
for skipping the elements or filtering them. However, you can use flatMap
method here which supports the intended functionality. Try the following line in your code:
mapped.flatMap(x -> Arrays.asList((x == null)? (new String[0]) : (new String{x})).iterator());
To remove or filter some values you can always use .filter
over an RDD.
But you can not use .map
for skipping the elements or filtering them. However, you can use flatMap
method here which supports the intended functionality. Try the following line in your code:
mapped.flatMap(x -> Arrays.asList((x == null)? (new String[0]) : (new String{x})).iterator());
answered Nov 19 '18 at 23:43
anuj saxenaanuj saxena
24917
24917
Thank you so much, that gave me the hint I needed!
– Roi G.
Nov 20 '18 at 21:40
add a comment |
Thank you so much, that gave me the hint I needed!
– Roi G.
Nov 20 '18 at 21:40
Thank you so much, that gave me the hint I needed!
– Roi G.
Nov 20 '18 at 21:40
Thank you so much, that gave me the hint I needed!
– Roi G.
Nov 20 '18 at 21:40
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53383544%2fremoving-nulls-while-mapping-a-javardd%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown