我正在尝试使用正则表达式和 Pyspark 中的以下脚本提取某些邮政编码的区域:
postcodes.select("raw_postcode", regexp_extract('raw_postcode', '^[a-zA-Z]+\d\d?[a-zA-Z]?', 1).alias("area")).show(40, False)
我得到以下异常:
Py4JJavaError: An error occurred while calling o562.showString.
: org.apache.spark.SparkException: Job aborted due to stage failure: Task 0 in stage 17.0 failed 4 times, most recent failure: Lost task 0.3 in stage 17.0 (TID 44, ip-172-31-100-215.eu-west-1.compute.internal, executor 1): java.lang.IndexOutOfBoundsException: No group 1
at java.util.regex.Matcher.group(Matcher.java:538)
Run Code Online (Sandbox Code Playgroud)
我已经单独在 Python 中尝试了正则表达式并且它有效,但是它在 pyspark 中给我带来了麻烦。帮我查一下原因。
我有一个包含此内容的csv文件:
col1, col2, col5
1, 1, 1
2, 2, 2
3, 3, 3
4, 4, 4
Run Code Online (Sandbox Code Playgroud)
我需要在文件的第三个位置添加一个带有标题但是空值的列.
col1, col2, col3, col4
1, 1, , 1
2, 2, , 2
3, 3, , 3
4, 4, , 4
Run Code Online (Sandbox Code Playgroud)
有没有办法使用像cat,sed,awk或cut这样的Linux命令之一?
我知道有cut可以通过列cut -d,-f1,2,3 file1> file2修改文件.但似乎没有添加自定义列的选项.
任何帮助将非常感激.
您可以解决此错误吗:df.isin函数在做什么错?
cursor = con.cursor()
cursor.execute("""SELECT distinct date FROM raw_finmis_online_activation_temp""")
existing_dates = [x[0] for x in cursor.fetchall()]
if df[df['date'].isin(existing_dates)]:
print "Yes it's in there"
else:
print "N"
Run Code Online (Sandbox Code Playgroud)
这给了我这个错误:
ValueError:DataFrame的真值不明确。使用a.empty,a.bool(),a.item(),a.any()或a.all()。
我已经在DAG中添加了新任务,它需要回填它们。目前,当我运行airflow backfill它时,它将运行所有任务(新任务和旧任务),而我想忽略已经成功的旧任务。
有什么方法可以在回填中跳过具有成功状态的任务?
我想使用该命令将 Databricks 上的 Delta 表中的数据加载到 Snowflake 上的表中MERGE INTO。
目标是 Databricks 上的 Delta 表中的记录数量与 Snowflake 上的表中的记录数量看起来相同。
发生的问题是,由于 Delta Lake(S3 路径)有多个版本,Snowflake 会查询重复记录。
如何才能只读取最新版本的 Delta Lake?
MERGE INTO myTable as target USING (
SELECT
$1:DAY::TEXT AS DAY,
$1:CHANNEL_CATEGORY::TEXT AS CHANNEL_CATEGORY,
$1:SOURCE::TEXT AS SOURCE,
$1:PLATFORM::TEXT AS PLATFROM,
$1:LOB::TEXT AS LOB
FROM @StageFilePathDeltaLake
(FILE_FORMAT => 'sf_parquet_format')
) as src
ON target.CHANNEL_CATEGORY = src.CHANNEL_CATEGORY
AND target.SOURCE = src.SOURCE
WHEN MATCHED THEN
UPDATE SET
DAY= src.DAY
,PLATFORM= src.PLATFORM
,LOB= src.LOB
WHEN NOT MATCHED THEN
INSERT …Run Code Online (Sandbox Code Playgroud)