[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
| Re: [geomesa-users] Compilaiton error in Java when applying "map" to an RDD generated via GeoMesaSpark.rdd | 
On 09/05/15 22:19, James Hughes wrote:
Language issues aside, for your case, it sounds like Spark 1.3.1 may work out.  I
missed the details, but some folks who are using GeoMesa internally also ran into
issues with Spark 1.3.0.
Since Spark is a compiled dependency and we don't package it, I think you'll be
able to update the Spark versions in your pom and see your tests work.  (That's
the very best case scenario.)
Unfortunately, it did not work. I installed Spark 1.3.1 in place of 1.3.0-SNAPSHOT 
and re-run the integration test, to no avail.
If upgrading Spark doesn't help, you may have to try compiling with Java 6 or 7
(assuming that you don't have too many lambdas to rewrite), or compile your
functional Java code with Java 8 and try to compile the rest with Java 7.
It looks like pain to me.
For the time being I patched my code with this utterly stolid (and doomed to fail 
with any sizeable amount of data) method:
  public static JavaRDD<Tweet> loadFromGeoMesaTable(JavaSparkContext sc,
      GeoMesaOptions options) throws IOException, SchemaException {
    List<Tweet> featList = new ArrayList<Tweet>();
    SimpleFeatureIterator featIter = TweetFeatureStore.getFeatureType(options)
        .getFeatures().features();
    try {
      while (featIter.hasNext()) {
        featList.add(new Tweet(featIter.next()));
      }
    } finally {
      featIter.close();
    }
    return sc.parallelize(Lists.newArrayList(featList));
  }
I know it sucks... but is there a better way to build an RDD out of a FeatureType 
using parallelize?
Thanks again for your time&patience,
Luca Morandini
Data Architect - AURIN project
Melbourne eResearch Group
Department of Computing and Information Systems
University of Melbourne
Tel. +61 03 903 58 380
Skype: lmorandini