spark redis键列映射不起作用-返回null

时间:2018-11-10 22:51:36

标签: apache-spark dataframe redis key

我正在遵循spark-redis连接器文档中的示例,以从现有哈希创建数据框。

哈希的构建如下:

  

127.0.0.1:6379>某人:1个姓John的年龄为30岁

     

(整数)2

     

127.0.0.1:6379>预设人物:2名彼得,年龄45岁

     

(整数)2

     

127.0.0.1:6379>人物:3名詹姆斯,年龄40岁

读取哈希的代码如下-

foo

输出

    SparkSession spark = SparkSession
        .builder()
        .appName("MyApp")
        .master("local[*]")
        .config("spark.redis.host", "localhost")
        .config("spark.redis.port", "6379")
         .getOrCreate();
    Dataset<Row> df = spark.read()
       .format("org.apache.spark.sql.redis")
       .schema(new StructType(new StructField[] {
            DataTypes.createStructField("id", DataTypes.StringType, true),
            DataTypes.createStructField("name", DataTypes.StringType, false),
            DataTypes.createStructField("age", DataTypes.IntegerType, false)
       })
    )
    .option("keys.pattern", "person:*")
    .option("key.column", "id")
    .load();

    df.show();
    df.printSchema();     

我原本希望Id列中分别为1、2、3,但改为为null。在这方面的任何指示都将有所帮助。这段代码也是Java语言,所以我不确定数据类型是否存在问题。

1 个答案:

答案 0 :(得分:0)

您使用的版本不支持该版本-使用主提示,直到发布新版本为止。

外部参照:https://github.com/RedisLabs/spark-redis/issues/114