Question: In Spark SQL when I tried to use map function on DataFrame then I am getting below error. 

The method map(Function1, ClassTag) in the type DataFrame is not applicable for the arguments (new Function(){})

I am following spark 1.3 documentation as well. <https://spark.apache.org/docs/latest/sql-programming-guide.html#inferring-the-schema-using-reflection> Have any one solution?

Here is my testing code.

```
   // SQL can be run over RDDs that have been registered as tables.
DataFrame teenagers = sqlContext.sql("SELECT name FROM people WHERE age >= 13 AND age <= 19");

List<String> teenagerNames = teenagers.map(
            new Function<Row, String>() {
          public String call(Row row) {
            return "Name: " + row.getString(0);
          }
        }).collect();

```

Answer: 
No need to convert to RDD, its delays the execution it can be done as below

`public static void mapMethod() {
 // Read the data from file, where the file is in the classpath.
 Dataset df = sparkSession.read().json("file1.json");

```
// Prior to java 1.8 
Encoder<String> encoder = Encoders.STRING();
    List<String> rowsList = df.map((new MapFunction<Row, String>() {
        private static final long serialVersionUID = 1L;

        @Override
        public String call(Row row) throws Exception {
            return "string:>" + row.getString(0).toString() + "<";
        }
    }), encoder).collectAsList();

// from java 1.8 onwards
List<String> rowsList1 = df.map((row -> "string >" + row.getString(0) + "<" ), encoder).collectAsList();
System.out.println(">>> " + rowsList);
System.out.println(">>> " + rowsList1);

```

}`
Please check your input file's data and your dataframe sql query same thing I am facing and when I look back to the data so it was not matching with my query.
So probably same issue you are facing. toJavaRDD and JavaRDD both are working.