1

私はsparkRデータフレームを持っています.Rで使用する列からcust_sales値のみを抽出する必要があります.CQ98901282cust_idcust_sales$cust_id[3]

私の提案はgetItem(x, ...)、抽出に使用できるかということです。そうであれば、引数「x」は列になりますcust_sales$cust_id

  1. 引数「...」に何が来るか
  2. 私の提案が間違っている場合、getItem(x, ...)私の例での使用方法と使用方法を教えてください。

    +----------+----------+-----------+
    |   cust_id|      date|Total_trans|
    +----------+----------+-----------+
    |CQ98901280|2015-06-06|          1|
    |CQ98901281|2015-05-01|          1|
    |CQ98901282|2015-05-02|          1|
    |CQ98901283|2015-05-03|          1|
    |CQ98901284|2015-04-01|          6|
    |CQ98901285|2015-04-02|          8|
    |CQ98901286|2015-04-03|         13|
    |CQ98901287|2015-04-04|          3|
    |CQ98901288|2015-04-05|          3|
    |CQ98901289|2015-04-08|         16|
    

ティア、アルン

4

1 に答える 1

1

Spark data frames don't support random row access and you have a wrong idea how getItem function works. It is intended for data extraction from non-atomic fields like maps or arrays:

> writeLines('{"foo": [0, 1], "bar": {"x": 3, "y": 4}}', "example.json")
> df <- SparkR::jsonFile(sqlContext, "example.json")
> printSchema(df)
root
 |-- bar: struct (nullable = true)
 |    |-- x: long (nullable = true)
 |    |-- y: long (nullable = true)
 |-- foo: array (nullable = true)
 |    |-- element: long (containsNull = true)
> select(df, getItem(df$bar, "x"), getItem(df$bar, "y")) %>% head()
  bar[x] bar[y]
1      3      4

For some reason I couldn't make it work with arrays but using PySpark

>>> df = sqlContext.read.json("example.json")
>>> df.select(df.foo.getItem(0)).show()
>>> df.select(df.foo.getItem(0), df.foo.getItem(1), df.bar.getItem("x")).show()
+------+------+------+
|foo[0]|foo[1]|bar[x]|
+------+------+------+
|     0|     1|     3|
+------+------+------+
于 2015-09-10T11:22:22.593 に答える