相关疑难解决方法(0)

在从其他列派生的数据框中添加新列(Spark)

我正在使用Spark 1.3.0和Python.我有一个数据框,我希望添加一个从其他列派生的附加列.像这样,

>>old_df.columns
[col_1, col_2, ..., col_m]

>>new_df.columns
[col_1, col_2, ..., col_m, col_n]
Run Code Online (Sandbox Code Playgroud)

哪里

col_n = col_3 - col_4
Run Code Online (Sandbox Code Playgroud)

我如何在PySpark中执行此操作?

python apache-spark apache-spark-sql pyspark

22
推荐指数
3
解决办法
3万
查看次数

Spark UDF与varargs

如文档中所示,它是列出最多22个所有参数的唯一选项吗?

https://spark.apache.org/docs/1.5.0/api/scala/index.html#org.apache.spark.sql.UDFRegistration

有人想出如何做类似的事情吗?

sc.udf.register("func", (s: String*) => s......
Run Code Online (Sandbox Code Playgroud)

(编写跳过空值的自定义concat函数,当时只有2个参数)

谢谢

scala apache-spark udf

18
推荐指数
1
解决办法
1万
查看次数

如何在spark python中将两个字符串列连接到一列中

我想将数据框中的两列连接为一列,我想将 nameFirst 和 nameLast 合并为名为 FULL Name 的列

+---------+---------+--------+
| playerID|nameFirst|nameLast|
+---------+---------+--------+
|aardsda01|    David| Aardsma|
|aaronha01|     Hank|   Aaron|
|aaronto01|   Tommie|   Aaron|
| aasedo01|      Don|    Aase|
+---------+---------+--------+
Run Code Online (Sandbox Code Playgroud)

我正在尝试这段代码:

sqlContext.sql("SELECT playerID,(nameFirst+nameLast) as full_name FROM Master")
Run Code Online (Sandbox Code Playgroud)

但它返回

+---------+---------+
| playerID|full_name|
+---------+---------+
|aardsda01|     null|
|aaronha01|     null|
|aaronto01|     null|
| aasedo01|     null|
Run Code Online (Sandbox Code Playgroud)

请提供任何帮助

python dataframe apache-spark

4
推荐指数
1
解决办法
2万
查看次数

DataFrame到spark scala中的HDFS

我有一个格式为org.apache.spark.sql.DataFrame = [user_key:string,field1:string]的spark数据框.当我使用saveAsTextFile将文件保存在hdfs结果时,看起来像[12345,xxxxx].我不希望将开始和结束括号写入输出文件.如果我使用.rdd转换为RDD仍然在RDD中存在括号.

谢谢

apache-spark apache-spark-sql

1
推荐指数
1
解决办法
9211
查看次数

如何将行合并到 spark 数据帧的列中作为有效的 json 将其写入 mysql

我正在尝试将多行合并为一列,作为 spark 数据帧(spark 1.6.1)中的有效 json 格式。然后我希望它存储在 mysql 表中。

我的原始火花数据框如下所示:

|user_id   |product_id|price       | 
|A         |p1        |3000        |
|A         |p2        |1500        |
|B         |P1        |3000        |
|B         |P3        |2000        |
Run Code Online (Sandbox Code Playgroud)

我想像这样转换上表:

|user_id   |contents_json 
|A         |{(product_id:p1, price:3000), (product_id:p2, price:1500)} 
|B         |{{product_id:p1, price:3000), (product_id:p3, price:2000)} 
Run Code Online (Sandbox Code Playgroud)

然后把上面的表放到mysql表中。

这是完全相反的爆炸方式,但我找不到正确的方法。

json python-2.7 apache-spark apache-spark-sql pyspark

1
推荐指数
1
解决办法
3085
查看次数

我们可以在不创建模式的情况下在 spark 数据框中加载分隔文本文件吗?

我有格式良好的文本文件,如波纹管。

TimeStamp|^|LineItem_organizationId|^|LineItem_lineItemId|^|StatementTypeCode|^|LineItemName|^|LocalLanguageLabel|^|FinancialConceptLocal|^|FinancialConceptGlobal|^|IsDimensional|^|InstrumentId|^|LineItemSequence|^|PhysicalMeasureId|^|FinancialConceptCodeGlobalSecondary|^|IsRangeAllowed|^|IsSegmentedByOrigin|^|SegmentGroupDescription|^|SegmentChildDescription|^|SegmentChildLocalLanguageLabel|^|LocalLanguageLabel.languageId|^|LineItemName.languageId|^|SegmentChildDescription.languageId|^|SegmentChildLocalLanguageLabel.languageId|^|SegmentGroupDescription.languageId|^|SegmentMultipleFundbDescription|^|SegmentMultipleFundbDescription.languageId|^|IsCredit|^|FinancialConceptLocalId|^|FinancialConceptGlobalId|^|FinancialConceptCodeGlobalSecondaryId|^|FFAction|!|
1506702452474|^|4295876606|^|1|^|BAL|^|Cash And Deposits|^|2|^||^|ACAE|^|false|^||^||^||^||^|false|^||^||^||^||^|505126|^|505074|^||^||^||^||^||^||^||^|3018759|^||^|I|!|
1506702452475|^|4295876606|^|4|^|BAL|^|Raw Materials And Supplies|^||^||^|AIRM|^|false|^||^||^||^||^|false|^||^||^||^||^|505126|^|505074|^||^||^||^||^||^||^||^|3018830|^||^|I|!|
1506702452476|^|4295876606|^|10|^|BAL|^|Total current assets|^||^||^|XTCA|^|false|^||^||^||^||^|false|^||^||^||^||^|505126|^|505074|^||^||^||^||^||^||^||^|3019590|^||^|I|!|
1506702452477|^|4295876606|^|53|^|BAL|^|Deferred Assets Total|^||^||^|ADFN|^|false|^||^||^||^||^|false|^||^||^||^||^|505126|^|505074|^||^||^||^||^||^||^||^|3014598|^||^|I|!|
1506702452478|^|4295876606|^|54|^|BAL|^|Total Assets|^||^||^|XTOT|^|false|^||^||^||^||^|false|^||^||^||^||^|505126|^|505074|^||^||^||^||^||^||^||^|3016350|^||^|I|!|
1506702452479|^|4295876606|^|107|^|BAL|^|Total Number Of Treasury Stock|^||^||^|XTCTI|^|false|^||^||^||^||^|false|^||^||^||^||^|505126|^|505074|^||^||^||^||^||^||^||^|3016331|^||^|I|!|
1506702452480|^|4295876606|^|108|^|BAL|^|Total Number Of Issued Shares|^||^||^|XTCII|^|false|^||^||^||^||^|false|^||^||^||^||^|505126|^|505074|^||^||^||^||^||^||^||^|3016326|^||^|I|!|
1506702452481|^|4295876606|^|109|^|BAL|^|Total Number Of Issued Preferred Stock A|^||^||^|XTPII|^|false|^||^||^||^||^|false|^||^||^||^||^|505126|^|505074|^||^||^||^||^||^||^||^|3016352|^||^|I|!|
1506702452482|^|4295876606|^|111|^|CAS|^|Loss before income taxes|^||^||^|ONET|^|false|^||^||^||^||^|false|^||^||^||^||^|505126|^|505074|^||^||^||^||^||^||^||^|3019196|^||^|I|!|
1506702452483|^|4295876606|^|130|^|CAS|^|Subtotal|^||^||^|FFFF|^|false|^||^||^||^||^|false|^||^||^||^||^|505126|^|505074|^||^||^||^||^||^||^||^|3014929|^||^|I|!|
1506702452484|^|4295876606|^|132|^|CAS|^|Net cash provided by (used in) operating activities|^||^||^|XTLO|^|false|^||^||^||^||^|false|^||^||^||^||^|505126|^|505074|^||^||^||^||^||^||^||^|3016344|^||^|I|!|
1506702452485|^|4295876606|^|133|^|CAS|^|Purchase of property, plant and equipment|^||^||^|ICEX|^|false|^||^||^||^||^|false|^||^||^||^||^|505126|^|505074|^||^||^||^||^||^||^||^|3014949|^||^|I|!|
1506702452486|^|4295876606|^|143|^|CAS|^|Net cash provided by (used in) investing activities|^||^||^|XTLI|^|false|^||^||^||^||^|false|^||^||^||^||^|505126|^|505074|^||^||^||^||^||^||^||^|3016342|^||^|I|!|
1506702452487|^|4295876606|^|145|^|CAS|^|Proceeds from long-term loans payable|^||^||^|FLDI|^|false|^||^||^||^||^|false|^||^||^||^||^|505126|^|505074|^||^||^||^||^||^||^||^|3014931|^||^|I|!|
Run Code Online (Sandbox Code Playgroud)

现在我必须将此文本文件加载到 spark 数据框中。

我可以这样做

val schema = StructType(Array(

      StructField("OrgId", StringType),
      StructField("LineItemId", StringType),
      StructField("SegmentId", StringType), …
Run Code Online (Sandbox Code Playgroud)

apache-spark apache-spark-sql spark-dataframe

0
推荐指数
1
解决办法
1万
查看次数

Spark Dataframe 连接字符串

如何使用 Spark-Scala 连接日期和时间列(均为字符串)

+---+-------------------+-----+
| ID|   Date            |Time
+---+------------------ +-----+
|  G|2014.01.14 00:00:00| 1:00
+---+-------------------+------

"2014.01.14 1:00" 
Run Code Online (Sandbox Code Playgroud)

scala apache-spark

0
推荐指数
1
解决办法
1万
查看次数